使用Qt,我可以获得一些默认路径,我可以通过e创建文件。 G。 QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)
在Linux和Windows上都可以正常工作。我还看到可以通过QStandardPaths::displayName
获取相应位置的本地化名称。
"问题"就是说,在Windows上,某些默认文件夹的名称会显示为已本地化。对于上面的命令,我得到 - 根据文档 - C:/Users/some_user/Documents
。这可能是磁盘上的实际路径。但是用户(使用德语区域设置)看到的是翻译版本:在这种情况下为C:/Benutzer/some_user/Eigene Dokumente
。
因此,不仅翻译了最后一个文件夹(我可以通过QStandardPaths::displayName
调用获得的字符串),还有基本目录。
是否有可靠的标准Qt方式能够显示用户从其他Windows程序中知道的目录名称?
答案 0 :(得分:0)
这不是你想要的,但我认为这可以给出一个想法。您可以通过访问Windows环境变量来获取默认路径:
在C ++中,我们有一个本机功能:
inline auto get_environement_variable(const char* key ) {
char * val = getenv(key);
return (val == NULL) ? "" : std::string(val);
}
一些默认环境变量:
auto programFiles = get_environement_variable("%ProgramW6432%");
auto programFilesX86 = get_environement_variable("%ProgramFiles(x86)%");
auto userProfile = get_environement_variable("%USERPROFILE%");
也许我错了,但我认为这是文件夹的一个:
auto userProfile = get_environement_variable("%USERPROFILE%\Documents");
我的操作系统是英文的,所以我无法确认返回的字符串是否为已翻译的字符串。