QDir *temp = new QDir("%USERPROFILE%");
bool ok = temp->mkdir("abc");
它不起作用。
答案 0 :(得分:4)
对于便携式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 or _wgetenv_s“正确”地执行此操作。