获取我的文档“路径

From: http://blog.csdn.net/chinabinlang/article/details/8637362

方法一:来自网络;

CString getMyDoc()		// 获取“我的文档”路径
{TCHAR m_lpszDefaultDir[MAX_PATH] = {0};TCHAR szDocument[MAX_PATH] = {0};memset(m_lpszDefaultDir, 0, _MAX_PATH);LPITEMIDLIST pidl = NULL;SHGetSpecialFolderLocation(NULL, CSIDL_PERSONAL, &pidl);if (pidl && SHGetPathFromIDList(pidl, szDocument)){GetShortPathName(szDocument, m_lpszDefaultDir, _MAX_PATH);}return CString(szDocument);
}

方法二:

函数SHGetSpecialFolderLocation():

 

#include "shlobj.h" //包含头文件
WINSHELLAPI HRESULT WINAPI SHGetSpecialFolderLocation (HWND hwndOwner, int nFolder,LPITEMIDLIST * ppidl); //函数声明

hwndOwner: 指定了"所有者窗口",在调用这个函数是可能出現的对话框或信息框.

nFolder: 是一个整数id,決定哪个目录是待查找目录,它的取值可能是
CSIDL_BITBUCKET                    回收站
CSIDL_CONTROLS                    控制面板
CSIDL_DESKTOP                      Windows桌面desktop;
CSIDL_DESKTOPDIRECTORY   desktop的目录;

CSIDL_DRIVES                            我的电脑
CSIDL_FONTS                             字体目录
CSIDL_NETHOOD                       网上邻居
CSIDL_NETWORK                       网上邻居virtual folder
CSIDL_PERSONAL                      我的文档
CSIDL_PRINTERS                        打印机

CSIDL_PROGRAMS                    程序组
CSIDL_RECENT                          最近打开文档
CSIDL_SENDTO                          发送到菜单项

CSIDL_STARTMENU                    快启菜单

CSIDL_STARTUP                         启动目录

CSIDL_TEMPLATES                     临时文档
ppidl: pidl地址. SHGetSpecialFolderLocation把地址写到pidl.

示例代码VC++ 6.0测试通过):
LPITEMIDLIST pidl;
LPMALLOC pShellMalloc;
char szDir[200];

if(SUCCEEDED(SHGetMalloc(&pShellMalloc)))
{
if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP,&pidl))) {
// 如果成功返回true
SHGetPathFromIDList(pidl, szDir);
pShellMalloc->Free(pidl);
}
pShellMalloc->Release();
}
::MessageBox (NULL,szDir,"Path",MB_OK);


VC获取指定文件夹路径

 

flyfish  2010-3-5

 

一 使用Shell函数


1 获取应用程序的安装路径

 

TCHAR buf[_MAX_PATH];
SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL);
AfxMessageBox(buf);


2 获取应用程序数据路径的文件夹

 TCHAR bufApplicateData[_MAX_PATH];

SHGetSpecialFolderPath(NULL,bufApplicateData,CSIDL_APPDATA,NULL);
AfxMessageBox(bufApplicateData);

 

3 获取系统文件夹

 TCHAR buf[_MAX_PATH];

SHGetSpecialFolderPath(NULL,buf,CSIDL_SYSTEM,NULL);
AfxMessageBox(buf);

 

4 获取Windows目录

 TCHAR buf[_MAX_PATH];

SHGetSpecialFolderPath(NULL,buf,CSIDL_WINDOWS,NULL);
AfxMessageBox(buf);

 

5 获取其他指定文件夹

 主要使用SHGetSpecialFolderPath函数

函数原型:BOOL SHGetSpecialFolderPath(HWND hwndOwner,LPTSTR lpszPath,int nFolder, BOOL fCreate);
参数nFolder指明获取什么样的文件夹。如下参考
MSDN可以搜索关键字:CSIDL
MSDN URL:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/shellcc/platform/shell/reference/enums/csidl.htm


二 使用其他API函数

 1 获取系统文件夹

TCHAR  buf[_MAX_PATH];
GetSystemDirectory( buf, _MAX_PATH );
AfxMessageBox(buf);

 

2 获取Windows目录

TCHAR  buf[_MAX_PATH];
GetWindowsDirectory( buf, _MAX_PATH );
AfxMessageBox(buf);

 

以上程序在VC2005中调试通过。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让您变的更智慧 秘笈145条(上)

钱多钱少,常有就好!人老人少,健康就好!家贫家富,和睦就好。生活其实很简单,过了今天就是明天,重要的每个今天和明天都要智慧快乐得活着。 1. 精神失常的疯子不可怕,可怕的是精神正常…

[Redux/Mobx] 说说redux的优缺点分别是什么?

[Redux/Mobx] 说说redux的优缺点分别是什么? 优点 Redux轻量,生态丰富,可以结合流行的redux-thunk、redux-saga等进行使用Redux的写法比较固定,团队应用中风格比较稳定,提高协作中的可维护性因为Redux中的reducer更新…

Bootstrap(七):CSS--图片

1.基本样式 主要四个样式类: 设置布局 .img-responsive : 可以让图片支持响应式布局,从而让图片在其父元素中更好的缩放; 设置形状 .img-rounded : 设置图片为圆角; 设置形状 .img-circle : 设置图片为圆形…

rtsp摘要认证协议(Response计算方法)

From: http://m.blog.csdn.net/blog/WTBEE/9001859 1. rtsp摘要认证协议流程 RTSP协议,全称Real Time Streaming Protocol,是应用层的协议,它主要实现的功能是传输并控制具有实时特性的媒体流,如音频(Audio…

[Redux/Mobx] Redux和vuex有什么区别?

[Redux/Mobx] Redux和vuex有什么区别? 1:vuex的异步数据不需要使用到中件间,redux需要 2:vuex可以直接commit,action不是必须的,redux是必须的 个人简介 我是歌谣,欢迎和大家一起交流前后端知…

android 带图片的文本框

基本原理 自定义一个IconTextView类继承自TextView,添加iconsrc属性,表示图片。 重新onDraw方法,将图片绘制到textVIew前面,然后将textView右移。 废话不多说了,直接代码就明白。 package com.zb;import android.content.Context;…

【WiFi密码破解详细图文教程】ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解

From: http://softbbs.zol.com.cn/1/32_7991.html 每天都能看到有不少网友在回复论坛之前发布的一篇破解WiFi密码的帖子,并伴随各种疑问。今天流云就为大家准备一篇实战型的文章吧,详细图文从思维CDlinux U盘启动到中文设置,如何进行路由SSID…

整理Linux查看系统日志的一些经常使用命令

整理Linux查看系统日志的一些经常使用命令 last-a 把从何处登入系统的主机名称或ip地址&#xff0c;显示在最后一行。-d 指定记录文件。指定记录文件。将IP地址转换成主机名称。-f <记录文件>  指定记录文件。-n <显示列数>或-<显示列数>  设置列出名单的显…

[Redux/Mobx] 在Redux中怎么发起网络请求?

[Redux/Mobx] 在Redux中怎么发起网络请求&#xff1f; 如果单纯的使用Redux&#xff0c;因为redux的actionCreator返回一个plain object&#xff0c;所以不能在actionCreator中发起网络请求&#xff1b;reducer是一个纯函数&#xff0c;不能有副作用&#xff0c;所以也不能有异…

判断整数序列是不是二元查找树的后序遍历结果

题目&#xff1a;输入一个整数数组&#xff0c;判断该数组是不是某二元查找树的后序遍历的结果。 如果是返回true&#xff0c;否则返回false。 例如输入5、7、6、9、11、10、8&#xff0c;由于这一整数序列是如下树的后序遍历结果&#xff1a; 8 / \ 6 10 / \ / \ 5 7 9…

iOS 从相机或相册获取图片并裁剪

/load user image - (void)UesrImageClicked { UIActionSheet *sheet; // 判断是否支持相机 if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { sheet [[UIActionSheet alloc] initWithTitle:"选择图像" delega…

【EWSA无线路由密码破解工具 中文特别版下载】含教程及字典(弱口令生日特殊符号等)

From: http://softbbs.zol.com.cn/1/32_8011.html Elcomsoft Wireless Security Auditor简称EWSA,是一款极为强悍的路由密码破解工具&#xff0c;支持CPU、GPU调用破解&#xff0c;速度比但CPU破解厉害很多&#xff0c;加上此次分享的EWSA字典下载&#xff0c;可以帮助大家更好…

[Redux/Mobx] 什么是单一数据源?

[Redux/Mobx] 什么是单一数据源&#xff1f; Redux的store.getState只能得到一个数据源&#xff0c;通常这是一个对象&#xff0c;通常这也是React App中的唯一Redux数据源&#xff0c;这个state对象中的属性值通过combineReducer整合了子Reducer返回的state的值 个人简介 …

VMware vSphere简介

vSphere是VMware推出的基于云的新一代数据中心虚拟化套件&#xff0c;提供了虚拟化基础架构、高可用性、集中管理、监控等一整套解决方案 现VMware vSphere 版本为5.0&#xff0c;组件如下&#xff1a; ESXi&#xff1a;物理服务器的虚拟化层&#xff0c;它将处理器、内存、存储…

RESTful API 设计指南 (转)

RESTful API 设计指南 2016-02-23 ImportNew(点击上方公号&#xff0c;可快速关注) 作者&#xff1a;阮一峰 链接&#xff1a;http://www.ruanyifeng.com/blog/2014/05/restful_api.html 网络应用程序&#xff0c;分为前端和后端两个部分。当前的发展趋势&#xff0c;就是前端设…

find:查找文件或目录

From: http://yhj1065.blog.163.com/blog/static/198002172007111810502948/ 功能说明&#xff1a; find指令可以在系统中查找你想要的任何文件或目录&#xff0c;你可以通过不同的参数来查找你想要的。该指令也是系统管理员最常用、最强大、最方便的查找文件和目录的指令。 基…

[Redux/Mobx] 为什么redux能做到局部渲染呢?

[Redux/Mobx] 为什么redux能做到局部渲染呢&#xff1f; reducer从根往最子级的reducer中间各层总是返回一个新的state&#xff0c;这样的话&#xff0c;就会引起组件的大范围的re-render&#xff0c;但是这是可避免的 合理的利用selector&#xff1a;在connect函数中的第一个…

[zz]Linux操作系统下三种配置环境变量的方法

个人的总结: 设置了/etc/profile 和 ~/.bashrc 之后&#xff0c;使用了source 命令&#xff0c;是可以echo添加的变量&#xff0c;但是用getenv读不出来&#xff0c;然后使用env命令也显示不出来&#xff0c;是因为没有export!! ---------------------------------------------…

poj 2976 基础01分数规划

这个题算是01分数规划的最基本的应用了&#xff0c; 01分数规划是给你n对数(a1, b1)....(an, bn), 然后让你选择一些数对&#xff0c; 使得sigma(ai)/sigma(bi)最大。这里附上讲解一份&#xff0c; http://blog.csdn.net/hhaile/article/details/8883652&#xff0c; 代码如下&…

删除(.svn)目录

windows 平台&#xff1a; Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] "Delete SVN Folders"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] "cmd.exe /c \"TITLE Remov…