簡體   English   中英

如何獲取appdata / local / <MyProgramFolder> / c ++中的路徑

[英]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 ++, QStringstd::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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM