QDir::tempPath() 与 QStandardPaths::writableLocation()

Joh*_*Doe 4 qt qt5 qdir qstandardpaths

我需要获取临时目录的路径。以下方法之间有什么区别吗(除了第一个在 Qt 4 中可用)?哪个更好用?

Rei*_*ica 5

TL; DR:首选QStandardPaths::writableLocation

在 Unix、OS X 和 Windows 上没有区别。在那里,他们保证总是返回相同的东西。要机智-在qstandardpaths_win.cppqstandardpaths_unix.cppqstandardpaths_mac.mm,和qstandardpaths_winrt.cpp

QString QStandardPaths::writableLocation(StandardLocation type) {
  switch (type) { 
    //[...]
    case TempLocation:
      return QDir::tempPath();
Run Code Online (Sandbox Code Playgroud)

在 Android 和 Haiku 上, 返回的值QStandardPaths::writableLocation使用适当的特定于系统的方法,而 返回的值tempPath使用基于旧环境变量的方法,在这些系统上应该被视为已弃用。