惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
IT之家
IT之家
B
Blog RSS Feed
罗磊的独立博客
GbyAI
GbyAI
博客园 - Franky
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
博客园 - 聂微东
N
Netflix TechBlog - Medium
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
U
Unit 42
博客园 - 叶小钗
Jina AI
Jina AI
MyScale Blog
MyScale Blog
雷峰网
雷峰网
B
Blog
Hugging Face - Blog
Hugging Face - Blog
Blog — PlanetScale
Blog — PlanetScale
Recent Announcements
Recent Announcements
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - yoyolion

设置vs2005输出目录,提高PDA模拟器程序调试速度 svn1.5.0.13366可用下载地址 svn权限文件的注意事项 只允许修改自己的svn日志的钩子脚本 MySQL导出和导入SQL脚本 becky邮件客户端163邮箱设置 在Total command中显示Tortoise svn叠置图标的方法 头文件被修改导致一个难以理解、难以调试的错误 使用vs2005创建智能设备的C#和C++混合项目 .NET Compact Framework使用P/Invoke服务 vs2005的可再分发组件的路径 使用Lutz Roeder’s .NET Reflector反编译.NET Compact Framework程序集 NoteExpress PubMed 导入过滤器修正 关于系统U盘和未来5-10年电脑硬件发展的一点想法 GPRS上网打开普通页面的流量 MapInfo2007年用户大会参会记录 使用GPRS的cmwap接入点实现网络通讯1-----建立连接 关于GPRS(cmnet、cmwap)和CDMA 1X的比较及最优方案 解决UNICODE字符集下CStuioFile无法写入中文
判断目录是否存在
yoyolion · 2007-05-23 · via 博客园 - yoyolion

判断目录是否存在

使用CFileFind 类无法判断根目录:

CFileFind fileFind;
CString m_path = _T("c:\\");
if (fileFind.FindFile(m_path) == false)//**如果是根目录(c:\,d:\),FindFile返回false;不是根目录则运行正常
{
      AfxMessageBox(msg);
      return;
}

CFileFind 是对API ::FindFirstFile的封装,直接使用::FindFirstFile也存在无法判断根目录是否存在:

WIN32_FIND_DATA  wfd;

HANDLE hFind = FindFirstFile(_T("c:\\"), &wfd);
if (hFind != INVALID_HANDLE_VALUE)
{
    //
}
FindClose(hFind);

可以使用IO.h的 _access函数来判断
#include <io.h>//头文件

#ifdef _UNICODE
#define IsDirectoryExist(path) ::_waccess(path,0) == 0
//_waccess的第二个参数表示仅判断存在性,返回0表示存在,返回-1表示不存在
#else
#define IsDirectoryExist(path) ::_access(path,0) == 0//_access是MBCS版本
#endif

使用代码:
if(IsDirectoryExist(_T("c:\\")))
{
    //存在
}也可以使用GetFileAttributes函数,返回 FILE_ATTRIBUTE_DIRECTORY 表示目录存在
if (FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(_T("c:\\")))
{
    //存在
}

PathFileExists函数也可以,这个好,不用写注释

#include <shlwapi.h>//头文件
if (PathFileExists(_T("c:\\")))
{
    //存在
}