VC 获取系统特殊文件夹的路径如:系统目录,桌面等

本文介绍如何使用SHGetSpecialFolderPath函数获取Windows系统的特殊文件夹路径,包括桌面、文档、字体等,并列举了常见CSIDL值及其对应的文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果需要,请在StdAfx.h中添加 #include<shlobj.h>    
    
TCHAR MyDir[_MAX_PATH];  
SHGetSpecialFolderPath(this->GetSafeHwnd(),MyDir,CSIDL_APPDATA,0);
AfxMessageBox(MyDir);

 

其中第三个参数CSIDL_APPDATA可以为以下的值:


 CSIDL_BITBUCKET  回收站    
 CSIDL_CONTROLS  控制面板    
 CSIDL_DESKTOP  Windows  桌面Desktop    
 CSIDL_DESKTOPDIRECTORY  Desktop的目录    
  CSIDL_DRIVES  我的电脑    
  CSIDL_FONTS  字体目录    
 CSIDL_NETHOOD  网上邻居    
 CSIDL_NETWORK  网上邻居虚拟目录    
 CSIDL_PERSONAL  我的文档    
 CSIDL_PRINTERS  打印机    
 CSIDL_PROGRAMS  程序组    
  CSIDL_RECENT  最近打开的文档    
  CSIDL_SENDTO  “发送到”菜单项    
 CSIDL_STARTMENU  任务条启动菜单项    
 CSIDL_STARTUP  启动目录    
 CSIDL_TEMPLATES  文档模板      

//如果下面的值在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&reg; 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&reg; 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&reg; 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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值