[英]How do I get appdata/local/<MyProgramFolder>/ path in c++
我使用fstream並使用getenv來獲取appdata的路徑。 我使用了以下代碼,但它在appdata / roaming /上輸出
QString appdata = getenv("appdata");
appdata += "\\DoDLog.log";
fstream stud;
stud.open(appdata.toStdString().c_str(), ios::app);
我想要發生的是appdata / local // DoDLog.log的路徑
MyProgram是我一直在運行的c ++程序。 請幫忙。
您需要使用SHGetSpecialFolderLocation
這是一個C解決方案,它應該不難適應C ++, QString
, std::string
等等。
#include <shlobj.h>
...
HRESULT GetFolderLocation (int csidl, char* buffer)
{
LPITEMIDLIST pidl = 0;
HRESULT result = SHGetSpecialFolderLocation(NULL, csidl, &pidl);
*buffer = 0 ;
if (result == 0)
{
SHGetPathFromIDList(pidl, buffer);
CoTaskMemFree(pidl);
}
return result;
}
...
char str[_MAX_PATH];
GetFolderLocation(CSIDL_LOCAL_APPDATA, str);
// now str contains "C:\Users\<user>\AppData\Local"
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.