如果需要,请在StdAfx.h中添加 #include<shlobj.h>
TCHAR MyDir[_MAX_PATH];
SHGetSpecialFolderPath(this->GetSafeHwnd(),MyDir,CSIDL_APPDATA,0);
AfxMessageBox(MyDir);
其中第三个参数CSIDL_APPDATA可以为以下的值:
//如果下面的值在VC开发环境中不存在话,可以在VC98/include/SHLOBJ.H中定义该变量
CSIDL_FLAG_CREATE(0x8000)
Version 5.0. Combine this CSIDL with any of the following CSIDLs toforce the creation of the associatedfolder.
CSIDL_ADMINTOOLS(0x0030)
Version 5.0. The file system directory that is used to storeadministrative tools for an individual user. The MicrosoftManagement Console (MMC) will save customized consoles to thisdirectory, and it will roam with the user.
CSIDL_ALTSTARTUP(0x001d)
The file system directory that corresponds to the user'snonlocalized Startup program group.
CSIDL_APPDATA(0x001a)
Version 4.71. The file system directory that serves as a commonrepository for application-specific data. A typical path isC:\Documents and Settings\username\Application Data. This CSIDL issupported by the redistributable Shfolder.dll for systems that donot
have the Microsoft® Internet Explorer 4.0integrated Shell installed.
CSIDL_BITBUCKET(0x000a)
The virtual folder containing the objects in the user's RecycleBin.
CSIDL_CDBURN_AREA(0x003b)
Version 6.0. The file system directory acting as a staging area forfiles waiting to be written to CD. A typical path is C:\Documentsand Settings\username\Local Settings\Application Data\Microsoft\CDBurning.
CSIDL_COMMON_ADMINTOOLS(0x002f)
Version 5.0. The file system directory containing administrativetools for all users of the computer.
CSIDL_COMMON_ALTSTARTUP(0x001e)
The file system directory that corresponds to the nonlocalizedStartup program group for all users. Valid only for MicrosoftWindows NT® systems.
CSIDL_COMMON_APPDATA(0x0023)
Version 5.0. The file system directory containing application datafor all users. A typical path is C:\Documents and Settings\AllUsers\Application Data.
CSIDL_COMMON_DESKTOPDIRECTORY(0x0019) //获取桌面
CSIDL_COMMON_DOCUMENTS(0x002e)
The file system directory that contains documents that are commonto all users. A typical paths is C:\Documents and Settings\AllUsers\Documents. Valid for Windows NT systems and MicrosoftWindows® 95 and Windows 98 systems withShfolder.dll installed.
CSIDL_COMMON_FAVORITES(0x001f) //获取收藏文件夹
The file system directory thatserves as a common repository for favorite items common to allusers. Valid only for Windows NT systems.
CSIDL_COMMON_MUSIC(0x0035)
Version 6.0. The file system directory that serves as a repositoryfor music files common to all users. A typical path is C:\Documentsand Settings\All Users\Documents\My Music.
CSIDL_COMMON_PICTURES(0x0036)
Version 6.0. The file system directory that serves as a repositoryfor image files common to all users. A typical path is C:\Documentsand Settings\All Users\Documents\My Pictures.
CSIDL_COMMON_PROGRAMS(0x0017) //获取程序菜单目录
The file system directory thatcontains the directories for the common program groups that appearon the Start menu for all users. A typical path is C:\Documents andSettings\All Users\Start Menu\Programs. Valid only for Windows NTsystems.
CSIDL_COMMON_STARTMENU(0x0016) //开始菜单
The file system directory that contains the programs and foldersthat appear on the Start menu for all users. A typical path isC:\Documents and Settings\All Users\Start Menu. Valid only forWindows NT systems.
CSIDL_COMMON_STARTUP(0x0018) //获取启动菜单
The file system directory that contains the programs that appear inthe Startup folder for all users. A typical path is C:\Documentsand Settings\All Users\Start Menu\Programs\Startup. Valid only forWindows NT systems.
CSIDL_COMMON_TEMPLATES(0x002d) //临时文件夹
The file system directory that contains the templates that areavailable to all users. A typical path is C:\Documents andSettings\All Users\Templates. Valid only for Windows NTsystems.
CSIDL_COMMON_VIDEO(0x0037)
Version 6.0. The file system directory that serves as a repositoryfor video files common to all users. A typical path is C:\Documentsand Settings\All Users\Documents\My Videos.
CSIDL_CONTROLS(0x0003)
The virtual folder containing icons for the Control Panelapplications.
CSIDL_COOKIES(0x0021) //获取Cookies目录
The file system directory that serves as a common repository forInternet cookies. A typical path is C:\Documents andSettings\username\Cookies.
CSIDL_DESKTOP(0x0000) //获取桌面
The virtual folder representing the Windows desktop, the root ofthe namespace.
CSIDL_DESKTOPDIRECTORY(0x0010) //获取桌面
The file system directory used to physically store file objects onthe desktop (not to be confused with the desktop folder itself). Atypical path is C:\Documents and Settings\username\Desktop.
CSIDL_DRIVES(0x0011)
The virtual folder representing My Computer, containing everythingon the local computer: storage devices, printers, and ControlPanel. The folder may also contain mapped network drives.
CSIDL_FAVORITES(0x0006)
The file system directory that serves as a common repository forthe user's favorite items. A typical path is C:\Documents andSettings\username\Favorites.
CSIDL_FONTS(0x0014) //获取字体目录
Avirtual folder containing fonts. A typical path isC:\Windows\Fonts.
CSIDL_HISTORY(0x0022) //获取历史目录
The file system directory that serves as a common repository forInternet history items.
CSIDL_INTERNET(0x0001)
A virtual folder representing the Internet.
CSIDL_INTERNET_CACHE(0x0020)
Version 4.72. The file system directory that serves as a commonrepository for temporary Internet files. A typical path isC:\Documents and Settings\username\Local Settings\TemporaryInternet Files.
CSIDL_LOCAL_APPDATA(0x001c)
Version 5.0. The file system directory that serves as a datarepository for local (nonroaming) applications. A typical path isC:\Documents and Settings\username\Local Settings\ApplicationData.
CSIDL_MYDOCUMENTS(0x000c)
Version 6.0. The virtual folder representing the My Documentsdesktop item. This should not be confused with CSIDL_PERSONAL,which represents the file system folder that physically stores thedocuments.
CSIDL_MYMUSIC(0x000d)
The file system directory that serves as a common repository formusic files. A typical path is C:\Documents and Settings\User\MyDocuments\My Music.
CSIDL_MYPICTURES(0x0027)
Version 5.0. The file system directory that serves as a commonrepository for image files. A typical path is C:\Documents andSettings\username\My Documents\My Pictures.
CSIDL_MYVIDEO(0x000e)
Version 6.0. The file system directory that serves as a commonrepository for video files. A typical path is C:\Documents andSettings\username\My Documents\My Videos.
CSIDL_NETHOOD(0x0013)
A file system directory containing the link objects that may existin the My Network Places virtual folder. It is not the same asCSIDL_NETWORK, which represents the network namespace root. Atypical path is C:\Documents and Settings\username\NetHood.
CSIDL_NETWORK(0x0012)
A virtual folder representing Network Neighborhood, the root of thenetwork namespace hierarchy.
CSIDL_PERSONAL(0x0005)
The file system directory used to physically store a user's commonrepository of documents. A typical path is C:\Documents andSettings\username\My Documents. This should be distinguished fromthe virtual My Documents folder in the namespace, identified byCSIDL_MYDOCUMENTS.
To access that virtual folder, useSHGetFolderLocation, which returns the ITEMIDLIST for the virtuallocation, or refer to the technique described in Managing the FileSystem.
CSIDL_PRINTERS(0x0004)
The virtual folder containing installed printers.
CSIDL_PRINTHOOD(0x001b)
The file system directory that contains the link objects that canexist in the Printers virtual folder. A typical path isC:\Documents and Settings\username\PrintHood.
CSIDL_PROFILE(0x0028)
Version 5.0. The user's profile folder. A typical path isC:\Documents and Settings\username. Applications should not createfiles or folders at this level; they should put their data underthe locations referred to by CSIDL_APPDATA orCSIDL_LOCAL_APPDATA.
CSIDL_PROFILES(0x003e)
Version 6.0. The file system directory containing user profilefolders. A typical path is C:\Documents and Settings.
CSIDL_PROGRAM_FILES(0x0026)
Version 5.0. The Program Files folder. A typical path is C:\ProgramFiles.
CSIDL_PROGRAM_FILES_COMMON(0x002b)
Version 5.0. A folder for components that are shared acrossapplications. A typical path is C:\Program Files\Common. Valid onlyfor Windows NT, Windows 2000, and Windows XP systems. Not valid forWindows Millennium Edition (Windows Me).
CSIDL_PROGRAMS(0x0002)
The file system directory that contains the user's program groups(which are themselves file system directories). A typical path isC:\Documents and Settings\username\StartMenu\Programs.
CSIDL_RECENT(0x0008)
The file system directory that contains shortcuts to the user'smost recently used documents. A typical path is C:\Documents andSettings\username\My Recent Documents. To create a shortcut in thisfolder, use SHAddToRecentDocs. In addition to creating theshortcut,
this function updates the Shell's list of recentdocuments and adds the shortcut to the My Recent Documents submenuof the Start menu.
CSIDL_SENDTO(0x0009)
The file system directory that contains Send To menu items. Atypical path is C:\Documents and Settings\username\SendTo.
CSIDL_STARTMENU (0x000b) ///开始菜单
The file system directory containing Start menu items. A typicalpath is C:\Documents and Settings\username\Start Menu.
CSIDL_STARTUP(0x0007)
The file system directory that corresponds to the user's Startupprogram group. The system starts these programs whenever any userlogs onto Windows NT or starts Windows 95. A typical path isC:\Documents and Settings\username\StartMenu\Programs\Startup.
CSIDL_SYSTEM(0x0025) ///系统目录
Version 5.0. The Windows System folder. A typical path isC:\Windows\System32.
CSIDL_TEMPLATES(0x0015)
The file system directory that serves as a common repository fordocument templates. A typical path is C:\Documents andSettings\username\Templates.
CSIDL_WINDOWS(0x0024) ///Windows目录
Version 5.0. The Windows directory or SYSROOT. This corresponds tothe %windir% or %SYSTEMROOT% environment variables. A typical pathis C:\Windows.