How to get the %AppData% folder in C?

后端 未结 5 894
予麋鹿
予麋鹿 2020-12-11 03:45

As above, how do I get the AppData folder in Windows using C?

I know that for C# you use Environment.SpecialFolder.ApplicationData

5条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-11 04:17

    Sample code:

    TCHAR szPath[MAX_PATH];
    if (SUCCEEDED(SHGetFolderPath(NULL,
       CSIDL_APPDATA | CSIDL_FLAG_CREATE,
       NULL,
       0,
       szPath)))
    {
       PathAppend(szPath, TEXT("MySettings.xml"));
       HANDLE hFile = CreateFile(szPath, ...);
    }
    

    CSIDL_APPDATA = username\Application Data. In Window 10 is: username\AppData\Roaming

    CSIDL_FLAG_CREATE = combine with CSIDL_ value to force folder creation in SHGetFolderPath()

    You can also use:

    CSIDL_LOCAL_APPDATA = username\Local Settings\Application Data (non roaming)

提交回复
热议问题