MFC CFileFind类用法总结

简介: MFC CFileFind类用法总结

简介


头文件


afx.h


功能:本地文件查找


具体类型文件:.格式,例如:.pdf:查找.pdf文件


所有 文件:*.*


API


构造函数


CFileFind类的构造函数::CFileFind()和关闭函数::Close(),成对使用。


成员函数


成员函数根据操作特性分成三类:


  • 查找操作类


  • 获得文件属性类


  • 判断文件属性类


查找操作类:


FindFile():


函数原型:


virtual BOOL FindFile(LPCTSTR pstrName = null,DWORD dwUnused = 0);


注意:dwUnused:必须为0


FindNextFile():


两个函数返回值


  • 非0还有符合条件的文件


  • 0表示是最后一个文件。


获得文件属性类:


GetCreationTime():


函数原型


virtual BOOL GetCreationTime(FILETIME *pFileTime) const; 
virtual BOOL GetCreationTime(CTime& refTime) const; 


该函数用来获得查找到的某个文件的创建时间


返回值:


  • 非0获得创建时间成功操作


  • 0表示执行获得创建时间失败或者FindNextFile()没有被执行的时候。


参数:


  • FILETIME:容纳时间的结构指针


  • CTime&:容纳时间的对象地址


FILETIME和CTime相互转换可以参考我的另一篇博文:


https://yangyongli.blog.csdn.net/article/details/122354748


GetLastWireTime();


函数原型:


virtual BOOL GetLastAccessTime(FILETIME *pFileTime) const; 
virtual BOOL GetLastAccessTime(CTime& refTime) const; 


该函数用来获得某个文件最后被访问的时间


返回值:


  • 非0表示执行成功


  • 0表示执行失败或者FindNextFile()函数没有执行的时候。


参数同上面函数GetCreationTime();


GetFileName();


virtual CString GetFileName() const;


该函数用来获得查找到的文件的全称,带后缀名。


GetRoot();


virtual CString GetRoot() const;


该函数用来获得查找到的文件的根目录。


GetFilePath();


virtual CString GetFilePath() const;


该函数用来获得查找到的文件绝对路径。


GetFileTitle();


virtual CString GetFileTitle() const;


该函数用来获得查找到的文件的名称,无后缀名。


GetFileURL();


virtual CString GetFileURL() const;


该函数用来获得查找到的文件的URL路径。


GetLength();


DWORD GetLength() const;


该函数返回值获得查找到的文件的长度,文件属性之Size。


判断文件属性类:


IsArchived();


BOOL IsArchived() const;


=该函数用来判断查找的文件属性是否是档案文件。


返回值:


  • 非0表示是


  • 0表示不是。


IsCompressed();


BOOL IsCompressed() const;


==该函数用来判断查找的文件属性是否是压缩文件。==非0表示是,0表示不是。


IsDirectory();


BOOL IsDirectory() const;


该函数用来判断查找的文件属性是否是路径文件,非0表示是,0表示不是。


IsDots();


BOOL IsDots() const;


查看文件名是否是包含".“或”..",以表明它的确是一个目录,非0表示是,0表示不是。


IsHidden();


BOOL IsHidden() const;


该函数用来判断查找的文件属性是否隐藏文件,非0表示是,0表示不是。


IsNormal();


BOOL IsNormal() const;


该函数用来判断查找的文件属性是否正常文件,非0表示是,0表示不是。


IsReadOnly();


BOOL IsReadOnly() const;


该函数用来判断查找的文件属性是否只读文件,非0表示是,0表示不是。


IsSystem();


BOOL IsSystem() const;


该函数用来判断查找的文件属性是否系统文件,非0表示是,0表示不是。


IsTemporary();


BOOL IsTemporary() const;


该函数用来判断查找的文件属性是否临时文件,非0表示是,0表示不是。


MachesMask();


BOOL MatchesMask(DWORD dwMask) const;


该函数用来判断查找的文件的综合属性,非0表示是,0表示不是。


dwMask参数的使用方法:几种文件属性采用或运算(|)


dwMask参数文件属性的结构定义:


  • FILE_ATTRIBUTE_ARCHIVE:档案文件


  • FILE_ATTRIBUTE_COMPRESSED:压缩文件


  • FILE_ATTRIBUTE_DIRECTORY:路径文件


  • FILE_ATTRIBUTE_NORMAL:正常文件


  • FILE_ATTRIBUTE_READONLY:只读文件


  • FILE_ATTRIBUTE_SYSTEM:系统文件


  • FILE_ATTRIBUTE_TEMPORARY:临时文件


  • FILE_ATTRIBUTE_HIDDEN:隐藏文件


CFileFind成员函数使用的顺序:


创建对象,执行FindFile()函数,然后执行FindNextFile(),然后执行获得/判断文件属性类函数。


其他一些问题以及解决方法:


  1. CFileFind类中返回的文件顺序与文件系统有关,如果是NFTS和CDFS文件系统,是以文件的字母顺序排列的,FAT文件系统下,是以文件增加的先后顺序排列的,而不是按字母顺序。


  1. 利用CFileFind类查找文件时会出现重复现象, 其原因也是跟文件系统类型有关,通常的解决方法:现将CFileFind类查找到的文件全部保存下来,然后再进行处理;切勿交叉处理。


  1. 另外介绍一种简单的排序方法,每查到一个文件,随后将其加入CListBox控件中显示(CListBox风格中得选中sort),因为CListBox控件有自动排序功能。


  1. 关于IsDots:每个目录下都有两个缺省的目录:名称分别为“.”和“..”,分别代表本层目录和上层目录


相关文章
|
3月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️反射的用法:变量、属性、方法、重载,反射在DLL中的使用方法
Unity数据加密☀️反射的用法:变量、属性、方法、重载,反射在DLL中的使用方法
|
6月前
|
C++ 存储 容器
Qt QList类和QLinkedList类 详解
Qt QList类和QLinkedList类 详解
|
6月前
|
C++
win32编程 -- 动态库中声明类
win32编程 -- 动态库中声明类
33 0
|
6月前
|
C++ 容器
[Qt5] 提升部件类的用法
[Qt5] 提升部件类的用法
92 0
理解 Delphi 的类(二) - 初识类的方法
理解 Delphi 的类(二) - 初识类的方法
|
数据可视化
理解 Delphi 的类(三) - 初识类的属性
理解 Delphi 的类(三) - 初识类的属性
192 0
|
网络协议 C# C++
VS2017编写MFC库以及使用Qt调用MFC库方法
VS2017编写MFC库以及使用Qt调用MFC库方法
VS2017编写MFC库以及使用Qt调用MFC库方法
|
存储 人工智能 程序员
MFC中的CString类使用方法指南
MFC中的CString类使用方法指南  原文出处:codeproject:CString Management 【禾路:这是一篇比较老的资料了,但是对于MFC的程序设计很有帮助。我们在MFC中使用字符串的相关操作,首先想到的就应该啊是CString,而不是char*或者string。
1738 0