简介
头文件:
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(),然后执行获得/判断文件属性类函数。
其他一些问题以及解决方法:
- CFileFind类中返回的文件顺序与文件系统有关,如果是NFTS和CDFS文件系统,是以文件的字母顺序排列的,FAT文件系统下,是以文件增加的先后顺序排列的,而不是按字母顺序。
- 利用CFileFind类查找文件时会出现重复现象, 其原因也是跟文件系统类型有关,通常的解决方法:现将CFileFind类查找到的文件全部保存下来,然后再进行处理;切勿交叉处理。
- 另外介绍一种简单的排序方法,每查到一个文件,随后将其加入CListBox控件中显示(CListBox风格中得选中sort),因为CListBox控件有自动排序功能。
- 关于IsDots:每个目录下都有两个缺省的目录:名称分别为“.”和“..”,分别代表本层目录和上层目录