`
testcs_dn
  • 浏览: 114448 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

VC判断文件目录是否存在的众多方法

 
阅读更多

1. 使用_access函数,函数原型为 int _access( const char *path, int mode );
2. 使用CreateFile函数,函数原型为: HANDLE CreateFile( LPCTSTR lpFileName, // pointer to name of the file DWORD dwDesiredAccess, // access (read-write) mode DWORD dwShareMode, // share mode LPSECURITY_ATTRIBUTES lpSecurityAttributes, // pointer to security attributes DWORD dwCreationDisposition, // how to create DWORD dwFlagsAndAttributes, // file attributes HANDLE hTemplateFile // handle to file with attributes to // copy );
3. 使用FindFirstFile函数,函数原型为: HANDLE FindFirstFile( LPCTSTR lpFileName, // pointer to name of file to search for LPWIN32_FIND_DATA lpFindFileData // pointer to returned information );
//例子:

BOOL CPubFunc::DirectoryExist(CString Path)
{
WIN32_FIND_DATA fd;
BOOL ret = FALSE;
HANDLE hFind = FindFirstFile(Path, &fd);
if ((hFind != INVALID_HANDLE_VALUE) && (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{ //目录存在
ret = TRUE;
}
FindClose(hFind);
return ret;
}
4. 使用GetFileAttributes函数,函数原型如下: DWORD GetFileAttributes( LPCTSTR lpFileName // pointer to the name of a file or directory );
5.使用Shell Lightweight Utility APIs函数PathFileExists()专门判断文件和目录时否存在的函数文件名可读性比较强还可以判断目录是否存在 Header: Declared in Shlwapi.h Import Library: Shlwapi.lib 以上的各种方法供参考,函数具体用法需参见MSDN。
//这是MSDN中的例子:
#include <windows.h>
#include <iostream.h>
#include "Shlwapi.h"

void main( void )
{
// Valid file path name (file is there).
char buffer_1[] = "C:\\TEST\\file.txt";
char *lpStr1;
lpStr1 = buffer_1;
// Invalid file path name (file is not there).
char buffer_2[] = "C:\\TEST\\file.doc";
char *lpStr2;
lpStr2 = buffer_2;
// Return value from "PathFileExists".
int retval;
// Search for the presence of a file with a true result.
retval = PathFileExists(lpStr1);
if(retval == 1)
{
cout << "Search for the file path of : " << lpStr1 << endl;
cout << "The file requested \"" << lpStr1 << "\" is a valid file" << endl;
cout << "The return from function is : " << retval << endl;
}
else{
cout << "\nThe file requested " << lpStr1 << " is not a valid file" << endl;
cout << "The return from function is : " << retval << endl;
}
// Search for the presence of a file with a false result.
retval = PathFileExists(lpStr2);
if(retval == 1)
{
cout << "\nThe file requested " << lpStr2 << "is a valid file" << endl;
cout << "Search for the file path of : " << lpStr2 << endl;
cout << "The return from function is : " << retval << endl;
}
else{
cout << "\nThe file requested \"" << lpStr2 << "\" is not a valid file" << endl;
cout << "The return from function is : " << retval << endl;
}
}

6.使用CFileFind类....这是一个InternetServices类,在此可以借用一下。也可以用于遍历文件夹(s可指定深度)
BOOL CPubFunc::FileExist(CString FileName)
{
CFileFind fFind;
return fFind.FindFile(FileName);
}

//创建目录
#include <winbase.h>
BOOL CreateDirectory(
LPCTSTR
lpPathName,// pointer to directory path string
LPSECURITY_ATTRIBUTESlpSecurityAttributes // pointer to security descriptor
);

分享到:
评论

相关推荐

    VC助手最新版本_vc_assist_支持vc6.0_vc2005_vc2008.RAR

    总之,"VC助手"Visual Assist X是Visual Studio开发环境的重要补充,它以其丰富的功能和优秀的用户体验,成为了众多VC开发者不可或缺的工具。通过使用这款插件,开发者可以提高工作效率,降低出错率,让编程工作变得...

    vc_automation_写excel文件

    在VC++编程中,自动化操作Excel是常见的任务,这通常涉及到使用Microsoft的...需要注意的是,由于OLE Automation涉及到的API众多,实际应用时需要参照Microsoft Office的开发文档,确保正确地调用方法和处理异常情况。

    俄罗斯方块vc代码

    在VC环境下实现“俄罗斯方块”,主要涉及到以下几个关键知识点: 1. **图形界面设计**:游戏界面通常需要有自定义的窗口和控件,这需要使用MFC(Microsoft Foundation Classes)库来创建。在“俄罗斯方块”中,我们...

    基于Labview的VC界面设计

    ### 基于Labview的VC界面设计 #### 背景与意义 随着信息技术的发展,用户对于软件界面美观度和交互性的需求日益增长。在众多的开发工具中,LabVIEW以其独特的图形化编程环境而著称,尤其适用于工程测量与控制系统...

    (opencv)renlianshibie.rar_opencv人脸识别_renlianshibie_人脸识别_人脸识别 vc6

    2. **人脸检测**:使用Haar特征级联分类器进行检测,这通常涉及滑动窗口策略,对图像的每个小区域进行分类,判断是否包含人脸。 3. **特征提取**:一旦检测到人脸,可能会进一步提取人脸的关键特征,如眼睛、鼻子和...

    wan-nian-li(yuan-meng-yang).rar_C++万年历设计_VC 万年历

    【标题】"wan-nian-li(yuan-meng-yang).rar_C++万年历设计_VC 万年历" 涉及的是一个基于C++编程语言,在Visual C++(简称VC)环境中开发的万年历程序。这个项目不仅是一个基本的日历应用,还具有独特的设计和功能,...

    gif添加代码gif添加代码

    在视类中的 OnDraw 中编写图形显示的代码,首先打开文件并判断文件的可用性,并把文件内容放到流接口 IStream 的对象 pStm 中: ```c IStream *pStm; CFileStatus fstatus; CFile file; LONG cb; if (file.Open...

    皮肤控件研究文档,破解后的库文件,皮肤设计工具使用教程

     是否已经有众多的成功案例  发布多长时间,同时是否一直有持续更新。 3.3 界面配置灵活性 界面开发一个很重要的问题是界面的样式是非常灵活的。比如一个button上面可能有一个图标,但有时也有可能需 要两个...

    人脸检测识别Demo

    验证是判断两张人脸图片是否属于同一个人,而识别则是在数据库中找出与给定人脸最匹配的个体。常用的人脸识别算法有LBPH、PCA、EIGEN、Dlib的KISSME算法,以及现代的深度学习模型如FaceNet、VGGFace和ArcFace等。这...

    用Add-in减少VC6.0中goto语句使用错误的研究 (2013年)

    - 对于每个含有`goto`语句的函数,进一步分析其控制流图,判断是否存在没有正确返回值的情况。 - 如果检测到潜在的问题,向开发者发出警告或错误信息,提示其进行手动检查。 3. **关键技术**: - **源代码解析**...

    仿真人工智能是指用人工的方法和技术,模仿、延伸和扩展人的智能

    压缩包中的“利用Winsock做的网络程序VC源码.zip”文件,表明了与网络编程和Windows Socket(Winsock)API相关的内容。Winsock是Windows平台上的网络通信接口,它允许程序员编写能与其他网络设备通信的应用程序。在...

    VC++俄罗斯方块完整源码

    - 方块碰撞检测:判断方块与已有方块或屏幕边缘的碰撞,决定是否可以继续移动。 - 行消除:当一行填满时,消除并累加得分。 3. 图形绘制: - 使用CDC类进行图形绘制,包括方块、背景、分数等元素。 - 绘制逻辑...

    (游戏编程)超级玛丽源代码(有详细讲解笔记)

    超级玛丽的源代码会展示矩形碰撞检测方法,如何判断角色与其他物体(如砖块、敌人)是否相撞。 4. 游戏逻辑:超级玛丽的游戏流程由一系列的条件判断和事件响应构成。源代码会解释游戏状态机的设计,如何处理关卡...

    wuziqi.rar_wuziqi

    【五子棋VC源码解析】 五子棋是一种古老而受欢迎的双人棋类游戏,源自中国,全球玩家众多。它的基本规则简单:先在棋盘上形成连续五个同色棋子(横向、纵向或对角线)的一方获胜。在计算机科学领域,将五子棋实现为...

    中国象棋代码

    至于文件名"vc63055464562",由于没有具体信息,可能是指Visual C++ 6的一个项目文件或者是一个编译后的二进制文件。Visual C++ 6是Microsoft的早期IDE,广泛用于C++开发,它提供了集成的编辑器、编译器和调试工具。...

    标准MFC WinSock ActiveX控件开发实例

    // 判断是否为点IP地址格式 if (OnlySock == INVALID_SOCKET) { shutdown(OnlySock, 0x02); closesocket(OnlySock);//释放占有的SOCK资源 return FALSE; } memset(&addr, 0, sizeof(struct sockaddr_in...

    任务三计算机网络实验IP数据报捕获与分析.doc

    实验环境平台是Windows,编程环境是VC 6.0,语言是C++。 实验原理中,数据报格式是以太帧由一个包含三个字段的帧头开始,前两个字段包含了物理地址,各六个字节,头部的第三个字段包含了16位的以太帧类型。帧头后面...

    cocahome_20100327171452.rar_模式识别(视觉/语音等)_Visual_C++_

    5. **识别决策**:根据匹配结果,做出是否识别成功的判断,以及识别出的身份。 在这个压缩包中,"face_detection"可能就是实现上述功能的源代码文件,而"代码之家.url"可能是一个链接,指向了更多关于该代码的介绍...

Global site tag (gtag.js) - Google Analytics