CFileFind类的详解以及应用实例

摘要:
CFileFind类在afx.h头文件中声明。例“西游记.txt”6virtualCStringGetFilePath()const;7//获取文件的绝对路径。例“D:\\我的文档\\小说\\古典\\西游记.txt”8virtualCStringGetFileTitle()const;9//获取文件的名称,不包括扩展名。例“西游记”10virtualBOOLGetLastWriteTimeconst;11virtualBOOLGetLastWriteTimeconst;12//获取文件最后一次修改时间。dwMask参数的使用方法,几种文件属性采用或运算:1FILE_ATTRIBUTE_ARCHIVE:档案文件2FILE_ATTRIBUTE_COMPRESSED:压缩文件3FILE_ATTRIBUTE_DIRECTORY:路径文件4FILE_ATTRIBUTE_NORMAL:正常文件5FILE_ATTRIBUTE_READONLY:只读文件6FILE_ATTRIBUTE_SYSTEM:系统文件7FILE_ATTRIBUTE_TEMPORARY:临时文件8FILE_ATTRIBUTE_HIDDEN:隐藏文件遍历指定目录:1voidBrowseDir2{3CFileFindff;4CStringszDir=strDir;5if(szDir.Right(1)!="\\")6path+="\\";7path+="*.*";8BOOLres=ff.FindFile;9while10{11res=ff.FindNextFile();//是文件时直接删除12if(!
CFileFind类在afx.h头文件中声明。
功能:执行本地文件的查找,支持通配符。
类的成员函数:

1、查找操作类:

1  //搜索目录下指定的文件,成功返回非0。第二个参数不必理会
2 virtual BOOL FindFile(LPCTSTR pstrName = NULL,DWORD dwUnused = 0); 3 virtual BOOL FindNextFile( );
4 //继续先前的搜索,在调用此函数之前需先调用FindFile函数,成功返回非0.
2、获取文件属性类:
1 virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
2 virtual BOOL GetCreationTime(CTime& refTime) const;  
3 //获取文件创建时间,成功返回非0。
4 virtual CString GetFileName( ) const; 
5 //获取文件名称,包括扩展名。例“西游记.txt”
6 virtual CString GetFilePath( ) const;
7 //获取文件的绝对路径。例“D:\\我的文档\\小说\\古典\\西游记.txt”
8 virtual CString GetFileTitle( ) const;
9  //获取文件的名称,不包括扩展名。例“西游记”
10 virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
11 virtual BOOL GetLastWriteTime(CTime& refTime) const;  
12 //获取文件最后一次修改时间。成功返回非0.
13 virtual BOOL GetLastAccessTime(CTime& refTime) const;
14 virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const;
15  //获取文件最后一次被访问的时间,成功返回非0.
16 ULONGLONG GetLength( ) const; 
17 //获取文件的长度,以字节为单位
18 virtual CString GetRoot( ) const;  
19 //获取文件的根目录,例“D:\\我的文档\\小说\\古典\\”
3、判断文件属性类:
1 BOOL IsArchived( ) const; //判断文件是否是档案文件
2     BOOL IsCompressed( ) const; //判断文件是否是压缩文件
3     BOOL IsDirectory( ) const;  //判断文件是否是目录
4     virtual BOOL IsDots( ) const; //判断文件是否是“.”和“..” 
5     BOOL IsHidden( ) const; //判断文件是否是隐藏文件
6     BOOL IsNormal( ) const; //判断文件是否是常规文件
7     BOOL IsReadOnly( ) const; //判断文件是否是只读文件
8     BOOL IsSystem( ) const;  //判断文件是否是系统文件
9     BOOL IsTemporary( ) const; //判断文件是否是临时文件
10     virtual BOOL MatchesMask(DWORD dwMask) const; 
11  //判断文件的综合属性。
dwMask参数的使用方法,几种文件属性采用或运算:
1 FILE_ATTRIBUTE_ARCHIVE:        档案文件  
2 FILE_ATTRIBUTE_COMPRESSED:     压缩文件   
3 FILE_ATTRIBUTE_DIRECTORY:      路径文件
4 FILE_ATTRIBUTE_NORMAL:         正常文件   
5 FILE_ATTRIBUTE_READONLY:       只读文件
6 FILE_ATTRIBUTE_SYSTEM:         系统文件  
7 FILE_ATTRIBUTE_TEMPORARY:      临时文件
8     FILE_ATTRIBUTE_HIDDEN:         隐藏文件

遍历指定目录

1     voidBrowseDir(CString strDir)
2 {
3 CFileFind ff;
4         CString szDir =strDir;
5         if(szDir.Right(1) != "\\")
6             szDir += "\\";
7         szDir += "*.*";
8         BOOL res =ff.FindFile(szDir);
9         while(res)
10 {
11             res =ff.FindNextFile();
12             if(ff.IsDirectory() && !ff.IsDots())
13 {
14                 //如果是一个子目录,用递归继续往深一层找
15 BrowseDir(ff.GetFilePath());
16             }else if(!ff.IsDirectory() && !ff.IsDots())
17 {
18                 //显示当前访问的文件
19                 CStatic* p = 
20 (CStatic*)GetDlgItem(IDC_STATIC_FILE);
21 CString str;
22                 str.Format("当前访问的文
23                            件:%s",ff.GetFilePath());
24                 p->SetWindowText(str);
25                 Sleep(500);
26 }
27 }
28         ff.Close();//关闭
29     }
查找指定的文件:
1     voidSearchFile(CString strDir,CString strFile)
2 {
3 CFileFind ff;
4         CString szDir =strDir;
5         if(szDir.Right(1) != "\\")
6         szDir += "\\";
7         szDir += "*.*";
8         BOOL res =ff.FindFile(szDir);
9         while(res)
10 {
11             res =ff.FindNextFile();
12             if(ff.GetFileName()==strFile)
13 {
14                 //找到了,加入列表框中
15 m_ctrlFilesList.AddString(ff.GetFilePath());
16 }
17             if(ff.IsDirectory() && !ff.IsDots())
18 {
19                 //如果是一个子目录,用递归继续往深一层找
20 SearchFile(ff.GetFilePath(),strFile);
21 }
22 }
23         ff.Close();//关闭
24     }

删除整个目录:

1     voidRecursiveDelete(CString szPath)
2 {
3 CFileFind ff;
4         CString path =szPath;
5         if(path.Right(1) != "\\")
6         path += "\\";
7         path += "*.*";
8         BOOL res =ff.FindFile(path);
9         while(res)
10 {
11             res = ff.FindNextFile();//是文件时直接删除
12             if (!ff.IsDots() && !ff.IsDirectory())
13 DeleteFile(ff.GetFilePath());
14             else if(ff.IsDots())
15                 continue;
16             else if(ff.IsDirectory())
17 {
18                 path =ff.GetFilePath();
19                 //是目录时继续递归,删除该目录下的文件
20 RecursiveDelete(path);
21                 //目录为空后删除目录
22 RemoveDirectory(path);  
23                  //删除空目录,若目录不为空则返回0
24 }
25 }
26         //最终目录被清空了,于是删除该目录
27 RemoveDirectory(szPath);
28      
29     }

免责声明:文章转载自《CFileFind类的详解以及应用实例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Unity中对输入的字符进行Unicode转码,并转回正常字符串 以及 GB2312转UTF-8 MD5码的转换使用linux mint 安装无线网卡驱动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

cppcheck,代码简单分析,以及实现一个简单的模块

经过半天的分析和了解,大致明白了这个工具的使用方法和原理。 这个工具,会将一个源文件(目前我是用单一源文件测试的,没有使用目录测试), 每一个有效符号或者元素都解析出来,之后储存在一个大list里面,供后续模块检测时使用, 但是一些特殊的元素,不会被列入list,如调用约定(__stdcall 此类等等),其他应该还有,但是还没使用到, 目前看到的情况是,...

开启Nginx的目录文件列表功能

ngx_http_autoindex_module  此模块用于自动生成目录列表,ngx_http_autoindex_module只在 ngx_http_index_module模块未找到索引文件时发出请求. nginx默认是不允许列出整个目录的。 开启目录列表: 打开nginx.conf文件,在location server 或 http段中加入 au...

openwrt 代码框架分析

这次讲讲openwrt的结构. 1.代码上来看有几个重要目录package, target, build_root, bin, dl....---build_dir/host目录是建立工具链时的临时目录---build_dir/toolchain-是对应硬件的工具链的目录---staging_dir/toolchain- 则是工具链的安装位置---targ...

Jenkins操作手册 巨详细,一篇足矣!

一、持续集成相关概念 1.1、什么是持续集成? 随着软件开发复杂度的不断提高,团队开发成员间如何更好的协同工作以确保软件开发的质量已经成为开发过程中不可回避的问题。尤其是近年来敏捷开发在软件领域越来越火,如何能在不间断变化的需求中快速适应和保证软件的质量显得尤其重要。持续集成正是针对这一问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至...

FastDFS安装

FastDFS 安装包 FastDFS安装包 百度网盘 密码 aj4f 下载后把安装包移动到服务器里面 这里我把安装包放在opt/FastDFS FastDFS安装 安装环境 在本地安装就需要安装gcc环境yum -y install cmake make gcc-c++ 在阿里服务器因为帮你配置好了的 解压libfastcommon到指定目录 解压 -C...

Hadoop的管理目录

HDFS文件结构 1、NameNode的文件结构,NameNode会创建VERSION、edits、fsimage、fstime文件目录。其中dfs.name.dir属性是一个目录列表,是每个目录的镜像文件。VERSION文件是JAVA属性文件,其中包含运行HDFS的版本信息。包含内容:   其中,namespaceID是文件系统的唯一标识符,当文件系统...