1
我有一個要在Windows中作爲服務運行的可執行文件。由於該服務作爲本地系統運行,因此我應該編寫該程序使用的任何數據的文件夾。至於目前,我使用%LOCALAPPDATA%但當exe文件服務中運行它指向我程序作爲服務運行時獲取文件夾的路徑
C:\Windows\System32\config\systemprofile\AppData
我用下面的代碼:
std::string GetLocalAppDataPath()
{
HANDLE hfile;
TCHAR szPath[MAX_PATH];
if(SUCCEEDED(SHGetFolderPath(NULL,CSIDL_LOCAL_APPDATA,NULL,0, szPath)))
{
std::string path = boost::lexical_cast<std::string>(szPath);
boost::replace_all(path, "\\", "\\\\");
return path;
}
}
如果我把上面的代碼爲:
std::string app_data_path = GetLocalAppDataPath();
std::string log_folder_path = app_data_path + "\\\\lpa\\\\output\\\\";
我得到了C:\ WINDOWS \ system32 \ config \ systemprofile \ AppData \ Local \ lpa \ output \而不是我自己的本地應用程序數據文件夾。所以我應該使用LocalSystem可以訪問的其他文件夾。?
我使用C++爲EXE – Pant 2014-12-08 08:59:59