CFileFind:CObject
The MFC class CFileFind performs local file searches and is the base class for CGopherFileFind and CFtpFileFind, which perform Internet file searches. CFileFind includes member functions that begin a search, locate a file, and return the title, name, or path of the file. For Internet searches, the member function GetFileURL returns the file’s URL.
CFileFind is the base class for two other MFC classes designed to search particular server types: CGopherFileFind works specifically with gopher servers, and CFtpFileFind works specifically with FTP servers. Together, these three classes provide a seamless mechanism for the client to find files, regardless of the server protocol, the file type, or location, on either a local machine or a remote server.
The following code will enumerate all the files in the current directory, printing the name of each file:
CFileFind finder;
BOOL bWorking = finder.FindFile("*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
cout << (LPCTSTR) finder.GetFileName() << endl;
}
To keep the example simple, this code uses the standard C++ library cout class. The cout line could be replaced with a call to CListBox::AddString, for example, in a program with a graphical user interface.
For more information about how to use CFileFind and the other WinInet classes, see the articleInternet Programming with WinInet in Visual C++ Programmer's Guide.
#include <afx.h>
CFileFind Class Members
Construction
CFileFind | Constructs a CFileFind object. |
Attributes
GetLength | Gets the length of the found file, in bytes. |
GetFileName | Gets the name, including the extension, of the found file |
GetFilePath | Gets the whole path of the found file. |
GetFileTitle | Gets the title of the found file. The title does not include the extension. |
GetFileURL | Gets the URL, including the file path, of the found file. |
GetRoot | Gets the root directory of the found file. |
GetCreationTime | Gets the time the file was created. |
GetLastAccessTime | Gets the time that the file was last accessed. |
GetLastWriteTime | Gets the time the file was last changed and saved. |
MatchesMask | Indicates the desired file attributes of the file to be found. |
IsDots | Determines if the name of the found file has the name "." or "..", indicating that is actually a directory. |
IsReadOnly | Determines if the found file is read-only. |
IsDirectory | Determines if the found file is a directory. |
IsCompressed | Determines if the found file is compressed. |
IsSystem | Determines if the found file is a system file. |
IsHidden | Determines if the found file is hidden. |
IsTemporary | Determines if the found file is temporary. |
IsNormal | Determines if the found file is normal (in other words, has no other attributes). |
IsArchived | Determines if the found file is archived. |
Operations
Close | Closes the search request. |
FindFile | Searches a directory for a specified file name. |
FindNextFile | Continues a file search from a previous call to FindFile. |
例如查找并提取F:\VBA下文件名:
CString strPath = "F:\\VBA\\*.*";
CString strFileName;
CFileFind finder;
BOOL bWorking = finder.FindFile(strPath);
while (bWorking)
{
bWorking = finder.FindNextFile();
if(finder.IsDirectory()) //若确定找到的文件是否是一个目录,结束本次循环。
continue;
strFileName = finder.GetFileName();
cout << (LPCTSTR)strFileName << endl;
}
finder.Close();