QDir :: tempPath()vs QStandardPaths :: writableLocation()

时间:2018-03-29 19:08:48

标签: qt qt5 qdir qstandardpaths

我需要获取临时目录的路径。以下方法之间是否有任何区别(Qt 4中第一个方法除外)?哪一个更好用?

1 个答案:

答案 0 :(得分:2)

TL; DR:首选QStandardPaths::writableLocation

在Unix,OS X和Windows上没有区别。在那里,他们保证总是返回相同的东西。即:qstandardpaths_win.cppqstandardpaths_unix.cppqstandardpaths_mac.mmqstandardpaths_winrt.cpp

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

在Android和Haiku上,QStandardPaths::writableLocation返回的值使用适当的系统特定方法,而tempPath返回的值使用基于环境变量的遗留方法,应该考虑在这些方法上弃用系统