Win32 / C++ Windows文件夹路径获取
CFolderUtils.h
#pragma once
#include <string>
#ifdef _UNICODE
typedef std::wstring _tstring;
#else
typedef std::string _tstring;
#endif
//已知文件夹
namespace CFolderUtils
{
_tstring GetNetworkFolder();
_tstring GetComputerFolder();
_tstring GetInternetFolder();
_tstring GetControlPanelFolder();
_tstring GetPrintersFolder();
_tstring GetSyncManagerFolder();
_tstring GetSyncSetupFolder();
_tstring GetConflictFolder();
_tstring GetSyncResultsFolder();
_tstring GetRecycleBinFolder();
_tstring GetConnectionsFolder();
_tstring GetFonts();
_tstring GetDesktop();
_tstring GetStartup();
_tstring GetPrograms();
_tstring GetStartMenu();
_tstring GetRecent();
_tstring GetSendTo();
_tstring GetDocuments();
_tstring GetFavorites();
_tstring GetNetHood();
_tstring GetPrintHood();
_tstring GetTemplates();
_tstring GetCommonStartup();
_tstring GetCommonPrograms();
_tstring GetCommonStartMenu();
_tstring GetPublicDesktop();
_tstring GetProgramData();
_tstring GetCommonTemplates();
_tstring GetPublicDocuments();
_tstring GetRoamingAppData();
_tstring GetLocalAppData();
_tstring GetLocalAppDataLow();
_tstring GetInternetCache();
_tstring GetCookies();
_tstring GetHistory();
_tstring GetSystem();
_tstring GetSystemX86();
_tstring GetWindows();
_tstring GetProfile();
_tstring GetPictures();
_tstring GetProgramFilesX86();
_tstring GetProgramFilesCommonX86();
_tstring GetProgramFilesX64();
_tstring GetProgramFilesCommonX64();
_tstring GetProgramFiles();
_tstring GetProgramFilesCommon();
_tstring GetUserProgramFiles();
_tstring GetUserProgramFilesCommon();
_tstring GetAdminTools();
_tstring GetCommonAdminTools();
_tstring GetMusic();
_tstring GetVideos();
_tstring GetRingtones();
_tstring GetPublicPictures();
_tstring GetPublicMusic();
_tstring GetPublicVideos();
_tstring GetPublicRingtones();
_tstring GetResourceDir();
_tstring GetLocalizedResourcesDir();
_tstring GetCommonOEMLinks();
_tstring GetCDBurning();
_tstring GetUserProfiles();
_tstring GetPlaylists();
_tstring GetSamplePlaylists();
_tstring GetSampleMusic();
_tstring GetSamplePictures();
_tstring GetSampleVideos();
_tstring GetPhotoAlbums();
_tstring GetPublic();
_tstring GetChangeRemovePrograms();
_tstring GetAppUpdates();
_tstring GetAddNewPrograms();
_tstring GetDownloads();
_tstring GetPublicDownloads();
_tstring GetSavedSearches();
_tstring GetQuickLaunch();
_tstring GetContacts();
_tstring GetSidebarParts();
_tstring GetSidebarDefaultParts();
_tstring GetPublicGameTasks();
_tstring GetGameTasks();
_tstring GetSavedGames();
_tstring GetGames();
_tstring GetSEARCH_MAPI();
_tstring GetSEARCH_CSC();
_tstring GetLinks();
_tstring GetUsersFiles();
_tstring GetUsersLibraries();
_tstring GetSearchHome();
_tstring GetOriginalImages();
_tstring GetDocumentsLibrary();
_tstring GetMusicLibrary();
_tstring GetPicturesLibrary();
_tstring GetVideosLibrary();
_tstring GetRecordedTVLibrary();
_tstring GetHomeGroup();
_tstring GetHomeGroupCurrentUser();
_tstring GetDeviceMetadataStore();
_tstring GetLibraries();
_tstring GetPublicLibraries();
_tstring GetUserPinned();
_tstring GetImplicitAppShortcuts();
_tstring GetAccountPictures();
_tstring GetPublicUserTiles();
_tstring GetAppsFolder();
_tstring GetStartMenuAllPrograms();
_tstring GetCommonStartMenuPlaces();
_tstring GetApplicationShortcuts();
_tstring GetRoamingTiles();
_tstring GetRoamedTileImages();
_tstring GetScreenshots();
_tstring GetCameraRoll();
_tstring GetSkyDrive();
_tstring GetOneDrive();
_tstring GetSkyDriveDocuments();
_tstring GetSkyDrivePictures();
_tstring GetSkyDriveMusic();
_tstring GetSkyDriveCameraRoll();
_tstring GetSearchHistory();
_tstring GetSearchTemplates();
_tstring GetCameraRollLibrary();
_tstring GetSavedPictures();
_tstring GetSavedPicturesLibrary();
_tstring GetRetailDemo();
_tstring GetDevice();
_tstring GetDevelopmentFiles();
_tstring GetObjects3D();
_tstring GetAppCaptures();
_tstring GetLocalDocuments();
_tstring GetLocalPictures();
_tstring GetLocalVideos();
_tstring GetLocalMusic();
_tstring GetLocalDownloads();
_tstring GetRecordedCalls();
_tstring GetAllAppMods();
_tstring GetCurrentAppMods();
_tstring GetAppDataDesktop();
_tstring GetAppDataDocuments();
_tstring GetAppDataFavorites();
_tstring GetAppDataProgramData();
};
CFolderUtils.cpp
#include "CFolderUtils.h"
#include <shlobj_core.h>
#pragma comment(lib, "Ole32.lib")
#pragma comment(lib, "Shell32.lib")
namespace CFolderUtils
{
_tstring GetKnownFolder(_In_ REFKNOWNFOLDERID rfid)
{
_tstring strFolder;
LPWSTR pstr = NULL;
HRESULT hr = S_OK;
hr = SHGetKnownFolderPath(rfid, KF_FLAG_DEFAULT, NULL, &pstr);
if (NULL != pstr)
{
#ifdef _UNICODE
strFolder = pstr;
#else
CHAR szBuf[MAX_PATH] = { 0 };
int nConverted = ::WideCharToMultiByte(CP_ACP, 0, pstr, -1, szBuf, _countof(szBuf), NULL, NULL);
if (0 != nConverted)
{
strFolder = szBuf;
}
#endif
CoTaskMemFree(pstr);
}
return strFolder;
}
_tstring GetNetworkFolder() { return GetKnownFolder(FOLDERID_NetworkFolder); }
_tstring GetComputerFolder() { return GetKnownFolder(FOLDERID_ComputerFolder); }
_tstring GetInternetFolder() { return GetKnownFolder(FOLDERID_InternetFolder); }
_tstring GetControlPanelFolder() { return GetKnownFolder(FOLDERID_ControlPanelFolder); }
_tstring GetPrintersFolder() { return GetKnownFolder(FOLDERID_PrintersFolder); }
_tstring GetSyncManagerFolder() { return GetKnownFolder(FOLDERID_SyncManagerFolder); }
_tstring GetSyncSetupFolder() { return GetKnownFolder(FOLDERID_SyncSetupFolder); }
_tstring GetConflictFolder() { return GetKnownFolder(FOLDERID_ConflictFolder); }
_tstring GetSyncResultsFolder() { return GetKnownFolder(FOLDERID_SyncResultsFolder); }
_tstring GetRecycleBinFolder() { return GetKnownFolder(FOLDERID_RecycleBinFolder); }
_tstring GetConnectionsFolder() { return GetKnownFolder(FOLDERID_ConnectionsFolder); }
_tstring GetFonts() { return GetKnownFolder(FOLDERID_Fonts); }
_tstring GetDesktop() { return GetKnownFolder(FOLDERID_Desktop); }
_tstring GetStartup() { return GetKnownFolder(FOLDERID_Startup); }
_tstring GetPrograms() { return GetKnownFolder(FOLDERID_Programs); }
_tstring GetStartMenu() { return GetKnownFolder(FOLDERID_StartMenu); }
_tstring GetRecent() { return GetKnownFolder(FOLDERID_Recent); }
_tstring GetSendTo() { return GetKnownFolder(FOLDERID_SendTo); }
_tstring GetDocuments() { return GetKnownFolder(FOLDERID_Documents); }
_tstring GetFavorites() { return GetKnownFolder(FOLDERID_Favorites); }
_tstring GetNetHood() { return GetKnownFolder(FOLDERID_NetHood); }
_tstring GetPrintHood() { return GetKnownFolder(FOLDERID_PrintHood); }
_tstring GetTemplates() { return GetKnownFolder(FOLDERID_Templates); }
_tstring GetCommonStartup() { return GetKnownFolder(FOLDERID_CommonStartup); }
_tstring GetCommonPrograms() { return GetKnownFolder(FOLDERID_CommonPrograms); }
_tstring GetCommonStartMenu() { return GetKnownFolder(FOLDERID_CommonStartMenu); }
_tstring GetPublicDesktop() { return GetKnownFolder(FOLDERID_PublicDesktop); }
_tstring GetProgramData() { return GetKnownFolder(FOLDERID_ProgramData); }
_tstring GetCommonTemplates() { return GetKnownFolder(FOLDERID_CommonTemplates); }
_tstring GetPublicDocuments() { return GetKnownFolder(FOLDERID_PublicDocuments); }
_tstring GetRoamingAppData() { return GetKnownFolder(FOLDERID_RoamingAppData); }
_tstring GetLocalAppData() { return GetKnownFolder(FOLDERID_LocalAppData); }
_tstring GetLocalAppDataLow() { return GetKnownFolder(FOLDERID_LocalAppDataLow); }
_tstring GetInternetCache() { return GetKnownFolder(FOLDERID_InternetCache); }
_tstring GetCookies() { return GetKnownFolder(FOLDERID_Cookies); }
_tstring GetHistory() { return GetKnownFolder(FOLDERID_History); }
_tstring GetSystem() { return GetKnownFolder(FOLDERID_System); }
_tstring GetSystemX86() { return GetKnownFolder(FOLDERID_SystemX86); }
_tstring GetWindows() { return GetKnownFolder(FOLDERID_Windows); }
_tstring GetProfile() { return GetKnownFolder(FOLDERID_Profile); }
_tstring GetPictures() { return GetKnownFolder(FOLDERID_Pictures); }
_tstring GetProgramFilesX86() { return GetKnownFolder(FOLDERID_ProgramFilesX86); }
_tstring GetProgramFilesCommonX86() { return GetKnownFolder(FOLDERID_ProgramFilesCommonX86); }
_tstring GetProgramFilesX64() { return GetKnownFolder(FOLDERID_ProgramFilesX64); }
_tstring GetProgramFilesCommonX64() { return GetKnownFolder(FOLDERID_ProgramFilesCommonX64); }
_tstring GetProgramFiles() { return GetKnownFolder(FOLDERID_ProgramFiles); }
_tstring GetProgramFilesCommon() { return GetKnownFolder(FOLDERID_ProgramFilesCommon); }
_tstring GetUserProgramFiles() { return GetKnownFolder(FOLDERID_UserProgramFiles); }
_tstring GetUserProgramFilesCommon() { return GetKnownFolder(FOLDERID_UserProgramFilesCommon); }
_tstring GetAdminTools() { return GetKnownFolder(FOLDERID_AdminTools); }
_tstring GetCommonAdminTools() { return GetKnownFolder(FOLDERID_CommonAdminTools); }
_tstring GetMusic() { return GetKnownFolder(FOLDERID_Music); }
_tstring GetVideos() { return GetKnownFolder(FOLDERID_Videos); }
_tstring GetRingtones() { return GetKnownFolder(FOLDERID_Ringtones); }
_tstring GetPublicPictures() { return GetKnownFolder(FOLDERID_PublicPictures); }
_tstring GetPublicMusic() { return GetKnownFolder(FOLDERID_PublicMusic); }
_tstring GetPublicVideos() { return GetKnownFolder(FOLDERID_PublicVideos); }
_tstring GetPublicRingtones() { return GetKnownFolder(FOLDERID_PublicRingtones); }
_tstring GetResourceDir() { return GetKnownFolder(FOLDERID_ResourceDir); }
_tstring GetLocalizedResourcesDir() { return GetKnownFolder(FOLDERID_LocalizedResourcesDir); }
_tstring GetCommonOEMLinks() { return GetKnownFolder(FOLDERID_CommonOEMLinks); }
_tstring GetCDBurning() { return GetKnownFolder(FOLDERID_CDBurning); }
_tstring GetUserProfiles() { return GetKnownFolder(FOLDERID_UserProfiles); }
_tstring GetPlaylists() { return GetKnownFolder(FOLDERID_Playlists); }
_tstring GetSamplePlaylists() { return GetKnownFolder(FOLDERID_SamplePlaylists); }
_tstring GetSampleMusic() { return GetKnownFolder(FOLDERID_SampleMusic); }
_tstring GetSamplePictures() { return GetKnownFolder(FOLDERID_SamplePictures); }
_tstring GetSampleVideos() { return GetKnownFolder(FOLDERID_SampleVideos); }
_tstring GetPhotoAlbums() { return GetKnownFolder(FOLDERID_PhotoAlbums); }
_tstring GetPublic() { return GetKnownFolder(FOLDERID_Public); }
_tstring GetChangeRemovePrograms() { return GetKnownFolder(FOLDERID_ChangeRemovePrograms); }
_tstring GetAppUpdates() { return GetKnownFolder(FOLDERID_AppUpdates); }
_tstring GetAddNewPrograms() { return GetKnownFolder(FOLDERID_AddNewPrograms); }
_tstring GetDownloads() { return GetKnownFolder(FOLDERID_Downloads); }
_tstring GetPublicDownloads() { return GetKnownFolder(FOLDERID_PublicDownloads); }
_tstring GetSavedSearches() { return GetKnownFolder(FOLDERID_SavedSearches); }
_tstring GetQuickLaunch() { return GetKnownFolder(FOLDERID_QuickLaunch); }
_tstring GetContacts() { return GetKnownFolder(FOLDERID_Contacts); }
_tstring GetSidebarParts() { return GetKnownFolder(FOLDERID_SidebarParts); }
_tstring GetSidebarDefaultParts() { return GetKnownFolder(FOLDERID_SidebarDefaultParts); }
_tstring GetPublicGameTasks() { return GetKnownFolder(FOLDERID_PublicGameTasks); }
_tstring GetGameTasks() { return GetKnownFolder(FOLDERID_GameTasks); }
_tstring GetSavedGames() { return GetKnownFolder(FOLDERID_SavedGames); }
_tstring GetGames() { return GetKnownFolder(FOLDERID_Games); }
_tstring GetSEARCH_MAPI() { return GetKnownFolder(FOLDERID_SEARCH_MAPI); }
_tstring GetSEARCH_CSC() { return GetKnownFolder(FOLDERID_SEARCH_CSC); }
_tstring GetLinks() { return GetKnownFolder(FOLDERID_Links); }
_tstring GetUsersFiles() { return GetKnownFolder(FOLDERID_UsersFiles); }
_tstring GetUsersLibraries() { return GetKnownFolder(FOLDERID_UsersLibraries); }
_tstring GetSearchHome() { return GetKnownFolder(FOLDERID_SearchHome); }
_tstring GetOriginalImages() { return GetKnownFolder(FOLDERID_OriginalImages); }
_tstring GetDocumentsLibrary() { return GetKnownFolder(FOLDERID_DocumentsLibrary); }
_tstring GetMusicLibrary() { return GetKnownFolder(FOLDERID_MusicLibrary); }
_tstring GetPicturesLibrary() { return GetKnownFolder(FOLDERID_PicturesLibrary); }
_tstring GetVideosLibrary() { return GetKnownFolder(FOLDERID_VideosLibrary); }
_tstring GetRecordedTVLibrary() { return GetKnownFolder(FOLDERID_RecordedTVLibrary); }
_tstring GetHomeGroup() { return GetKnownFolder(FOLDERID_HomeGroup); }
_tstring GetHomeGroupCurrentUser() { return GetKnownFolder(FOLDERID_HomeGroupCurrentUser); }
_tstring GetDeviceMetadataStore() { return GetKnownFolder(FOLDERID_DeviceMetadataStore); }
_tstring GetLibraries() { return GetKnownFolder(FOLDERID_Libraries); }
_tstring GetPublicLibraries() { return GetKnownFolder(FOLDERID_PublicLibraries); }
_tstring GetUserPinned() { return GetKnownFolder(FOLDERID_UserPinned); }
_tstring GetImplicitAppShortcuts() { return GetKnownFolder(FOLDERID_ImplicitAppShortcuts); }
_tstring GetAccountPictures() { return GetKnownFolder(FOLDERID_AccountPictures); }
_tstring GetPublicUserTiles() { return GetKnownFolder(FOLDERID_PublicUserTiles); }
_tstring GetAppsFolder() { return GetKnownFolder(FOLDERID_AppsFolder); }
_tstring GetStartMenuAllPrograms() { return GetKnownFolder(FOLDERID_StartMenuAllPrograms); }
_tstring GetCommonStartMenuPlaces() { return GetKnownFolder(FOLDERID_CommonStartMenuPlaces); }
_tstring GetApplicationShortcuts() { return GetKnownFolder(FOLDERID_ApplicationShortcuts); }
_tstring GetRoamingTiles() { return GetKnownFolder(FOLDERID_RoamingTiles); }
_tstring GetRoamedTileImages() { return GetKnownFolder(FOLDERID_RoamedTileImages); }
_tstring GetScreenshots() { return GetKnownFolder(FOLDERID_Screenshots); }
_tstring GetCameraRoll() { return GetKnownFolder(FOLDERID_CameraRoll); }
_tstring GetSkyDrive() { return GetKnownFolder(FOLDERID_SkyDrive); }
_tstring GetOneDrive() { return GetKnownFolder(FOLDERID_OneDrive); }
_tstring GetSkyDriveDocuments() { return GetKnownFolder(FOLDERID_SkyDriveDocuments); }
_tstring GetSkyDrivePictures() { return GetKnownFolder(FOLDERID_SkyDrivePictures); }
_tstring GetSkyDriveMusic() { return GetKnownFolder(FOLDERID_SkyDriveMusic); }
_tstring GetSkyDriveCameraRoll() { return GetKnownFolder(FOLDERID_SkyDriveCameraRoll); }
_tstring GetSearchHistory() { return GetKnownFolder(FOLDERID_SearchHistory); }
_tstring GetSearchTemplates() { return GetKnownFolder(FOLDERID_SearchTemplates); }
_tstring GetCameraRollLibrary() { return GetKnownFolder(FOLDERID_CameraRollLibrary); }
_tstring GetSavedPictures() { return GetKnownFolder(FOLDERID_SavedPictures); }
_tstring GetSavedPicturesLibrary() { return GetKnownFolder(FOLDERID_SavedPicturesLibrary); }
_tstring GetRetailDemo() { return GetKnownFolder(FOLDERID_RetailDemo); }
_tstring GetDevice() { return GetKnownFolder(FOLDERID_Device); }
_tstring GetDevelopmentFiles() { return GetKnownFolder(FOLDERID_DevelopmentFiles); }
_tstring GetObjects3D() { return GetKnownFolder(FOLDERID_Objects3D); }
_tstring GetAppCaptures() { return GetKnownFolder(FOLDERID_AppCaptures); }
_tstring GetLocalDocuments() { return GetKnownFolder(FOLDERID_LocalDocuments); }
_tstring GetLocalPictures() { return GetKnownFolder(FOLDERID_LocalPictures); }
_tstring GetLocalVideos() { return GetKnownFolder(FOLDERID_LocalVideos); }
_tstring GetLocalMusic() { return GetKnownFolder(FOLDERID_LocalMusic); }
_tstring GetLocalDownloads() { return GetKnownFolder(FOLDERID_LocalDownloads); }
_tstring GetRecordedCalls() { return GetKnownFolder(FOLDERID_RecordedCalls); }
_tstring GetAllAppMods() { return GetKnownFolder(FOLDERID_AllAppMods); }
_tstring GetCurrentAppMods() { return GetKnownFolder(FOLDERID_CurrentAppMods); }
_tstring GetAppDataDesktop() { return GetKnownFolder(FOLDERID_AppDataDesktop); }
_tstring GetAppDataDocuments() { return GetKnownFolder(FOLDERID_AppDataDocuments); }
_tstring GetAppDataFavorites() { return GetKnownFolder(FOLDERID_AppDataFavorites); }
_tstring GetAppDataProgramData() { return GetKnownFolder(FOLDERID_AppDataProgramData); }
}