枚举目录文件是Windows 系统
中一个重要的cāo作。枚举目录文件是通过CFileFind 类实现的。CFileFind 是MFC 中实现本地
文件搜索的类,包含开始搜索,定位文件,获得的文件信息的成员函数。
CFileFind 类的构造函数没有参数。而开始一个搜索,需要调用CFileFind::FindFile()函数。
该函数打开一个文件搜索,原型为:
virtual BOOL FindFile(
LPCTSTR pstrNcom = NULL,
DWORD dwUnused = 0
);
? 参数pstrNcom:指定文件的搜索路径和搜索类型,即可以使用通配符“*”和“?”。
如果给出NULL 值,则FindFile()进行“*.*”的搜索。
? 参数dwUnused:为CFileFind 的派生类保留,必须为0。
? 返回值:确定打开搜索是否成功,失败的话可以通过GetLastError 函数获得失败代码。
打开搜索后,就可以使用CFileFind::FindNextFile()函数获得下一个文件。CFileFind::FindNextFile()
函数原型为:
virtual BOOL FindNextFile( );
函数返回值用于确定是否还有文件没找到,如果为FALSE 则说明这是最后一个找到的
文件或者出错,可以用GetLastError 函数获得出错信息。
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·202·
搜索到一个文件时可以用下列一些函数获得文件的信息:
? GetCreationTcom():获得文件创建时间。
? GetFileNcom():获得文件名。
? GetFilePath():获得文件全路径。
? GetFileTitle():获得文件标题。
? GetLastAccessTcom():获得文件最后一次访问的时间。
? GetLastWriteTcom():获得文件最后一次被写入的时间。
? GetLength():获得文件字节大小。
? GetRoot():获得文件的根目录。
? IsArchived():确定文件是否是存档文件。
? IsDirectory():确定文件是否是目录。
? IsDots():确定文件是否是“.”或者“..”,这种类型的文件表示目录。
? IsHidden():确定文件是否是隐藏文件。
? IsNormal():确定文件是否是普通文件。
? IsReadOnly():确定文件是否是只读文件。
? IsSystem():确定文件是否是系统文件。
? IsTemporary():确定文件是否是临时文件。
最后用CFileFind::Close()函数关闭搜索。
介绍了CFileFind 类的使用方法后,可以想到,删除目录可以用递归的方法将目录中的
所有子目录删除,即在本级目录中如果