C++获得系统路径
源码:
- #include <Shlobj.h>
- #include <stdio.h>
- #include <locale.h>
- int main()
- {
- setlocale(LC_ALL, "chs");
- TCHAR szPath[MAX_PATH];
- int CSIDL[] = {
- CSIDL_ADMINTOOLS, CSIDL_APPDATA, CSIDL_CDBURN_AREA, CSIDL_COMMON_ADMINTOOLS, CSIDL_COMMON_APPDATA,
- CSIDL_COMMON_DESKTOPDIRECTORY, CSIDL_COMMON_DOCUMENTS, CSIDL_COMMON_FAVORITES, CSIDL_COMMON_MUSIC,
- CSIDL_COMMON_PICTURES, CSIDL_COMMON_PROGRAMS, CSIDL_COMMON_STARTMENU, CSIDL_COMMON_STARTUP,
- CSIDL_COMMON_TEMPLATES, CSIDL_COMMON_VIDEO, CSIDL_COOKIES, CSIDL_FAVORITES,
- CSIDL_HISTORY, CSIDL_INTERNET_CACHE, CSIDL_LOCAL_APPDATA, CSIDL_MYDOCUMENTS,
- CSIDL_MYMUSIC, CSIDL_MYPICTURES, CSIDL_MYVIDEO, CSIDL_PROFILE, CSIDL_PROGRAM_FILES,
- CSIDL_PROGRAM_FILES_COMMON, CSIDL_PROGRAMS, CSIDL_RECENT, CSIDL_SENDTO,
- CSIDL_STARTMENU, CSIDL_STARTUP, CSIDL_SYSTEM, CSIDL_TEMPLATES, CSIDL_WINDOWS,
- 0
- };
- for (int i=0;CSIDL[i];i++) {
- if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL[i], NULL, SHGFP_TYPE_CURRENT, szPath))) {
- wprintf(L"%d, %s\n", i, szPath);
- }
- }
- return 0;
- }
在XP上,用VS2010编译通过,假设是win7或者更高版本号,应该用
- HRESULT SHGetKnownFolderPath(
- _In_ REFKNOWNFOLDERID rfid,
- _In_ DWORD dwFlags,
- _In_opt_ HANDLE hToken,
- _Out_ PWSTR *ppszPath
- );
结果:
- 0, C:\Documents and Settings\Administrator\「開始」菜单\程序\管理工具
- 1, C:\Documents and Settings\Administrator\Application Data
- 2, C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\CD Burning
- 3, C:\Documents and Settings\All Users\「開始」菜单\程序\管理工具
- 4, C:\Documents and Settings\All Users\Application Data
- 5, C:\Documents and Settings\All Users\桌面
- 6, C:\Documents and Settings\All Users\Documents
- 7, C:\Documents and Settings\All Users\Favorites
- 8, C:\Documents and Settings\All Users\Documents\My Music
- 9, C:\Documents and Settings\All Users\Documents\My Pictures
- 10, C:\Documents and Settings\All Users\「開始」菜单\程序
- 11, C:\Documents and Settings\All Users\「開始」菜单
- 12, C:\Documents and Settings\All Users\「開始」菜单\程序\启动
- 13, C:\Documents and Settings\All Users\Templates
- 14, C:\Documents and Settings\All Users\Documents\My Videos
- 15, D:\My Documents\Cookies
- 16, D:\My Documents\Favorites
- 17, C:\Documents and Settings\Administrator\Local Settings\History
- 18, C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files
- 19, C:\Documents and Settings\Administrator\Local Settings\Application Data
- 20, D:\My Documents
- 21, D:\My Documents\My Music
- 22, D:\My Documents\My Pictures
- 23, D:\My Documents\My Videos
- 24, C:\Documents and Settings\Administrator
- 25, C:\Program Files
- 26, C:\Program Files\Common Files
- 27, C:\Documents and Settings\Administrator\「開始」菜单\程序
- 28, C:\Documents and Settings\Administrator\Recent
- 29, C:\Documents and Settings\Administrator\SendTo
- 30, C:\Documents and Settings\Administrator\「開始」菜单
- 31, C:\Documents and Settings\Administrator\「開始」菜单\程序\启动
- 32, C:\WINDOWS\system32
- 33, C:\Documents and Settings\Administrator\Templates
- 34, C:\WINDOWS
C++获得系统路径的更多相关文章
- 获取当前应用的系统路径工具类和java的System.getProperty()方法介绍
java的System.getProperty()方法可以获取的值,如下: 对于Java程序,无论是未打包的还是打包的JAR或WAR文件,有时候都需要获取它运行所在目录信息,如何做到这一点呢? /** ...
- 获取指定的系统路径 SHGetSpecialFolderPath
1.获取桌面的系统路径 TCHAR szLink[MAX_PATH + ] = { }; SHGetSpecialFolderPath(,szLink,CSIDL_DESKTOPDIRECTORY,) ...
- Python3下获取WINDOWS下所有常用系统路径
#codeing:utf-8import os #搞定WINDOWS下所有系统路径filename='c:\\WINDOWS_ALL_PATH.txt'f=open(filename,'w')i=1f ...
- C#读取“我的文档”等特殊系统路径及环境变量
返回“我的文档”路径字符串 Environment.GetFolderPath(Environment.SpecialFolder.Personal) 本技巧使用GetFolderPath方法来获取指 ...
- Linux - 系统路径加入命令
系统路径加入命令 本文地址: http://blog.csdn.net/caroline_wendy 1. 在根文件夹建立bin文件夹: $mkdir bin 2. 改动".bash_pro ...
- Intellij IDEA 系统路径配置
在使用IDEA启动Tomcat的时候,会读取系统路径,默认路径可能不是我们想要的,可以修改 C:\MyPrograms\IntelliJ IDEA 14.0.1\bin\idea.properties ...
- Pytest权威教程24-Pytest导入机制及系统路径
目录 Pytest导入机制和sys.path/PYTHONPATH 包中的测试脚本及conftest.py文件 独立测试模块及conftest.py文件 调用通过python -m pytest调用p ...
- day18 时间:time:,日历:calendar,可以运算的时间:datatime,系统:sys, 操作系统:os,系统路径操作:os.path,跨文件夹移动文件,递归删除的思路,递归遍历打印目标路径中所有的txt文件,项目开发周期
复习 ''' 1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块的集 ...
- navicat 找不到系统路径 【修改了系统路径中文名称引起的】
这是我还没修改系统路径中文名称时的路径, 怎么办? 关闭当前用户连接 右键,选择连接属性 把那个改了即可
- JAVA中获取不同系统的换行符和获取系统路径路径分割符
简介 JAVA具有多平台特征,一次开发,多平台运行,主要依据JVM,但是不同的操作系统中换行符和分割符不同,故需要根据不同的操作系统去获取不同的符号. JAVA代码 @Test public void ...
随机推荐
- C#实现自动切割图片
由于做一个TD游戏需要一些图片素材,可是现有的从网上下载的<保卫萝卜>的图片资源是多张图片合在一起的,并且没有什么规则,虽然有 个xml文件似乎用来描述此图片内子图片位置大小等信息,但由于 ...
- C#(WinForm)上传图片保存到数据库和从数据库读取图片显示到窗体
//浏览图片 private void btnUp_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialo ...
- StringBuilder和string.Format性能对比
本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/sbformat.html StringBuilder的性能优于string.For ...
- 【USACO 2.3.3】零数列
[题目描述] 请考虑一个由1到N(N=3, 4, 5 ... 9)的数字组成的递增数列:1 2 3 ... N. 现在请在数列中插入“+”表示加,或者“-”表示减,“ ”表示空白(例如1-2 3就等于 ...
- TCP/IP-入门
Life is not a rehearsal "人生没有彩排" 参考资料:TCP/IP入门经典 (第五版) TCP/IP详解 卷一:协议 一.什么是TCP/IP TCP/IP是一 ...
- JQuery语法总结和注意事项
1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...
- 002.AngularJs调用Restful实现CRUD
本节我们主要给大家介绍AngularJs如何调用Restful,实现数据的CRUD. 主要用到的技术: 后端:ASP.NET WebApi + SQLServer2008 前端:AngularJs,B ...
- php中字符串编码
php中抓取网页拼接url的时候经常需要进行编码,这时候就用到两个函数 mb_detect_encoding — 检测字符的编码. mb_convert_encoding — 转换字符的编码 < ...
- 看源码之Adapter和AdapterView之间的关系
总述 Android中"列表"的实现其实一个典型的MVC模式,其实中AdapterView相当于是View,负责视图的绘制以及视图的事件响应,Adapter相当于是Controll ...
- jdbc(1)(一)
1.连接数据库,准备mysql连接jar包导入项目: Class.forName("com.mysql.jdbc.Driver"); //建立连接是比较耗时,耗资源的,实际开发中多 ...