带有环境变量的 Qt Mkdir

  • 本文关键字:Qt Mkdir 环境变量 qt
  • 更新时间 :
  • 英文 :

QDir *temp = new QDir("%USERPROFILE%");
bool ok = temp->mkdir("abc");

而且它不起作用。

对于可移植的Qt代码,请使用静态方法QProcessEnvironment::systemEnvironment():

QProcessEnvironment env(QProcessEnvironment::systemEnvironment());
QDir *temp = new QDir(env.value("USERPROFILE")); // returns empty string for unset variable
bool ok = temp->mkdir("abc");

或者,正如实际问题的评论中所建议的那样,您也可以使用

#include <cstdio>
QString envValue(QString::fromLocal8bit(::getenv("USERPROFILE"))); // standard, yet deprecated in Windows...

我更喜欢使用第一种选择,让Qt负责字符编码。如果你想使用非Qt函数,我认为在Windows中你应该使用getenv_s或_wgetenv_s来"正确"地做到这一点。

最新更新