Класс CFileFind
Выполняет поиск локальных файлов и является базовым классом CGopherFileFind
, для которого CFtpFileFind
выполняются поиски в Интернете.
Синтаксис
class CFileFind : public CObject
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CFileFind::CFileFind |
Формирует объект CFileFind . |
Открытые методы
Имя | Описание |
---|---|
CFileFind::Close |
Закрывает запрос поиска. |
CFileFind::FindFile |
Выполняет поиск каталога по указанному имени файла. |
CFileFind::FindNextFile |
Продолжает поиск файла из предыдущего вызова FindFile . |
CFileFind::GetCreationTime |
Возвращает время создания файла. |
CFileFind::GetFileName |
Возвращает имя, включая расширение найденного файла. |
CFileFind::GetFilePath |
Возвращает весь путь найденного файла. |
CFileFind::GetFileTitle |
Возвращает заголовок найденного файла. Заголовок не включает расширение. |
CFileFind::GetFileURL |
Получает URL-адрес, включая путь к файлу, найденного файла. |
CFileFind::GetLastAccessTime |
Возвращает время последнего доступа к файлу. |
CFileFind::GetLastWriteTime |
Возвращает время последнего изменения и сохранения файла. |
CFileFind::GetLength |
Возвращает длину найденного файла в байтах. |
CFileFind::GetRoot |
Возвращает корневой каталог найденного файла. |
CFileFind::IsArchived |
Определяет, архивируется ли найденный файл. |
CFileFind::IsCompressed |
Определяет, сжимается ли найденный файл. |
CFileFind::IsDirectory |
Определяет, является ли найденный файл каталогом. |
CFileFind::IsDots |
Определяет, имеет ли имя найденного файла имя "." или ".", указывающее, что на самом деле каталог. |
CFileFind::IsHidden |
Определяет, скрыт ли найденный файл. |
CFileFind::IsNormal |
Определяет, является ли найденный файл нормальным (другими словами, не имеет других атрибутов). |
CFileFind::IsReadOnly |
Определяет, доступен ли найденный файл только для чтения. |
CFileFind::IsSystem |
Определяет, является ли найденный файл системным файлом. |
CFileFind::IsTemporary |
Определяет, является ли найденный файл временным. |
CFileFind::MatchesMask |
Указывает требуемые атрибуты файла, которые нужно найти. |
Защищенные методы
Имя | Описание |
---|---|
CFileFind::CloseContext |
Закрывает файл, указанный текущим дескриптором поиска. |
Защищенные члены данных
Имя | Описание |
---|---|
CFileFind::m_pTM |
Указатель на CAtlTransactionManager объект. |
Замечания
CFileFind
включает функции-члены, которые начинают поиск, находят файл и возвращают название, имя или путь к файлу. Для поиска в Интернете функция-член GetFileURL
возвращает URL-адрес файла.
CFileFind
— базовый класс для двух других классов MFC, предназначенных для поиска конкретных типов серверов: CGopherFileFind
работает специально с серверами-шифрами и CFtpFileFind
работает специально с FTP-серверами. Вместе эти три класса предоставляют простой механизм для поиска файлов независимо от протокола сервера, типа файла или расположения на локальном компьютере или удаленном сервере.
Следующий код перечисляет все файлы в текущем каталоге, печатая имя каждого файла:
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
}
Чтобы сохранить пример простым, этот код использует класс стандартной библиотеки cout
C++. Строка cout
может быть заменена вызовом CListBox::AddString
, например, в программе графическим пользовательским интерфейсом.
Дополнительные сведения об использовании CFileFind
и других классах WinInet см. в статье "Интернет-программирование с помощью WinInet".
Иерархия наследования
CFileFind
Требования
Заголовок: afx.h
CFileFind::CFileFind
Эта функция-член вызывается при CFileFind
создании объекта.
CFileFind();
CFileFind(CAtlTransactionManager* pTM);
Параметры
pTM
Указатель на объект CAtlTransactionManager.
Пример
Пример см. в примере CFileFind::GetFileName
.
CFileFind::Close
Вызовите эту функцию-член, чтобы завершить поиск, сбросить контекст и освободить все ресурсы.
void Close();
Замечания
После вызова Close
вам не нужно создавать новый CFileFind
экземпляр перед вызовом FindFile
нового поиска.
Пример
Пример см. в примере CFileFind::GetFileName
.
CFileFind::CloseContext
Закрывает файл, указанный текущим дескриптором поиска.
virtual void CloseContext();
Замечания
Закрывает файл, указанный текущим значением дескриптора поиска. Переопределите эту функцию, чтобы изменить поведение по умолчанию.
Чтобы получить допустимый дескриптор поиска, необходимо вызвать FindFile
FindNextFile
или функции по крайней мере один раз. FindNextFile
Функции FindFile
используют дескриптор поиска для поиска файлов с именами, соответствующими заданному имени.
CFileFind::FindFile
Вызовите эту функцию-член, чтобы открыть поиск по файлу.
virtual BOOL FindFile(
LPCTSTR pstrName = NULL,
DWORD dwUnused = 0);
Параметры
pstrName
Указатель на строку, содержащую имя файла для поиска. Если вы передаете NULL
запрос pstrName
, FindFile
выполняет поиск подстановочного знака (*.*).
dwUnused
Зарезервировано для создания FindFile
полиморфных с производными классами. Должно быть равно 0.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError
Win32.
Замечания
После вызова FindFile
для начала поиска файлов вызовите FindNextFile
для получения последующих файлов. Перед вызовом любой из следующих функций-членов атрибута необходимо вызвать FindNextFile
по крайней мере один раз:
Пример
Пример см. в примере CFileFind::IsDirectory
.
CFileFind::FindNextFile
Вызовите эту функцию-член, чтобы продолжить поиск файла из предыдущего вызова FindFile
.
virtual BOOL FindNextFile();
Возвращаемое значение
Ненулевое значение, если есть больше файлов; ноль, если найденный файл является последним в каталоге или произошла ошибка. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError
Win32. Если найденный файл является последним файлом в каталоге, или если соответствующие файлы не найдены, GetLastError
функция возвращается ERROR_NO_MORE_FILES
.
Замечания
Перед вызовом любой из следующих функций-членов атрибута необходимо вызвать FindNextFile
по крайней мере один раз:
FindNextFile
выполняет оболочку функции FindNextFile
Win32.
Пример
Пример см. в примере CFileFind::IsDirectory
.
CFileFind::GetCreationTime
Вызовите эту функцию-член, чтобы получить время создания указанного файла.
virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
virtual BOOL GetCreationTime(CTime& refTime) const;
Параметры
pTimeStamp
Указатель на FILETIME
структуру, содержащую время создания файла.
refTime
Ссылка на объект CTime
.
Возвращаемое значение
Ненулевое значение при успешном выполнении; 0, если неудачно. GetCreationTime
возвращает значение 0 только в том случае, если FindNextFile
этот объект никогда не вызывался CFileFind
.
Замечания
Перед вызовом GetCreationTime
необходимо вызвать FindNextFile
по крайней мере один раз.
Примечание.
Не все файловые системы используют ту же семантику для реализации метки времени, возвращаемой этой функцией. Эта функция может возвращать то же значение, возвращаемое другими функциями метки времени, если базовая файловая система или сервер не поддерживает сохранение атрибута времени. Сведения о форматах времени см. в WIN32_FIND_DATA
структуре. В некоторых операционных системах возвращенное время находится в локальном часовом поясе компьютера, где находится файл. Дополнительные сведения см. в API Win32 FileTimeToLocalFileTime
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::GetFileName
Вызовите эту функцию-член, чтобы получить имя найденного файла.
virtual CString GetFileName() const;
Возвращаемое значение
Имя последнего найденного файла.
Замечания
Перед вызовом GetFileName необходимо вызвать FindNextFile
по крайней мере один раз.
GetFileName
— одна из трех CFileFind
функций-членов, возвращающих некоторую форму имени файла. В следующем списке описывается три и их изменение.
GetFileName
возвращает имя файла, включая расширение. Например, вызовGetFileName
для создания пользовательского сообщения о файлеc:\myhtml\myfile.txt
возвращает имяmyfile.txt
файла.GetFilePath
возвращает весь путь к файлу. Например, вызовGetFilePath
для создания пользовательского сообщения о файле возвращает путь кc:\myhtml\myfile.txt
файлуc:\myhtml\myfile.txt
.GetFileTitle
возвращает имя файла, за исключением расширения файла. Например, вызовGetFileTitle
для создания пользовательского сообщения о файлеc:\myhtml\myfile.txt
возвращает названиеmyfile
файла.
Пример
CFileFind finder;
static const TCHAR szFileToFind[] = _T("C:\\WINDOWS\\SYSTEM.INI");
BOOL bResult = finder.FindFile(szFileToFind);
if (bResult)
{
finder.FindNextFile();
TRACE(_T("Root of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetRoot());
TRACE(_T("Title of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFileTitle());
TRACE(_T("Path of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFilePath());
TRACE(_T("URL of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFileURL());
TRACE(_T("Name of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFileName());
finder.Close();
}
else
{
TRACE(_T("You have no %s file.\n"), szFileToFind);
}
CFileFind::GetFilePath
Вызовите эту функцию-член, чтобы получить полный путь к указанному файлу.
virtual CString GetFilePath() const;
Возвращаемое значение
Путь к указанному файлу.
Замечания
Перед вызовом GetFilePath
необходимо вызвать FindNextFile
по крайней мере один раз.
GetFilePath
— одна из трех CFileFind
функций-членов, возвращающих некоторую форму имени файла. В следующем списке описывается три и их изменение.
GetFileName
возвращает имя файла, включая расширение. Например, вызовGetFileName
для создания пользовательского сообщения о файлеc:\myhtml\myfile.txt
возвращает имяmyfile.txt
файла.GetFilePath
возвращает весь путь к файлу. Например, вызовGetFilePath
для создания пользовательского сообщения о файле возвращает путь кc:\myhtml\myfile.txt
файлуc:\myhtml\myfile.txt
.GetFileTitle возвращает имя файла, за исключением расширения файла. Например, вызов
GetFileTitle
для создания пользовательского сообщения о файлеc:\myhtml\myfile.txt
возвращает названиеmyfile
файла.
Пример
Пример см. в примере CFileFind::GetFileName
.
CFileFind::GetFileTitle
Вызовите эту функцию-член, чтобы получить заголовок найденного файла.
virtual CString GetFileTitle() const;
Возвращаемое значение
Заголовок файла.
Замечания
Перед вызовом GetFileTitle
необходимо вызвать FindNextFile
по крайней мере один раз.
GetFileTitle
— одна из трех CFileFind
функций-членов, возвращающих некоторую форму имени файла. В следующем списке описывается три и их изменение.
GetFileName
возвращает имя файла, включая расширение. Например, вызовGetFileName
для создания пользовательского сообщения о файлеc:\myhtml\myfile.txt
возвращает имяmyfile.txt
файла.GetFilePath
возвращает весь путь к файлу. Например, вызовGetFilePath
для создания сообщения пользователя о файле возвращает путь к файлуc:\myhtml\myfile.txt
c:\myhtml\myfile.txt.GetFileTitle
возвращает имя файла, за исключением расширения файла. Например, вызовGetFileTitle
для создания пользовательского сообщения о файлеc:\myhtml\myfile.txt
возвращает названиеmyfile
файла.
Пример
Пример см. в примере CFileFind::GetFileName
.
CFileFind::GetFileURL
Вызовите эту функцию-член, чтобы получить указанный URL-адрес.
virtual CString GetFileURL() const;
Возвращаемое значение
Полный URL-адрес.
Замечания
Перед вызовом GetFileURL
необходимо вызвать FindNextFile
по крайней мере один раз.
GetFileURL
аналогичен функции-члену GetFilePath
, за исключением того, что он возвращает URL-адрес в форме file://path
. Например, вызов GetFileURL
для получения полного URL-адреса для myfile.txt
возврата URL-адреса file://c:\myhtml\myfile.txt
.
Пример
Пример см. в примере CFileFind::GetFileName
.
CFileFind::GetLastAccessTime
Вызовите эту функцию-член, чтобы получить время последнего доступа к указанному файлу.
virtual BOOL GetLastAccessTime(CTime& refTime) const;
virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const;
Параметры
refTime
Ссылка на объект CTime
.
pTimeStamp
Указатель на FILETIME
структуру, содержащую время последнего доступа к файлу.
Возвращаемое значение
Ненулевое значение при успешном выполнении; 0, если неудачно. GetLastAccessTime
возвращает значение 0 только в том случае, если FindNextFile
этот объект никогда не вызывался CFileFind
.
Замечания
Перед вызовом GetLastAccessTime
необходимо вызвать FindNextFile
по крайней мере один раз.
Примечание.
Не все файловые системы используют ту же семантику для реализации метки времени, возвращаемой этой функцией. Эта функция может возвращать то же значение, возвращаемое другими функциями метки времени, если базовая файловая система или сервер не поддерживает сохранение атрибута времени. Сведения о форматах времени см. в WIN32_FIND_DATA
структуре. В некоторых операционных системах возвращенное время находится в локальном часовом поясе компьютера, где находится файл. Дополнительные сведения см. в API Win32 FileTimeToLocalFileTime
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::GetLastWriteTime
Вызовите эту функцию-член, чтобы получить последний раз, когда файл был изменен.
virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
virtual BOOL GetLastWriteTime(CTime& refTime) const;
Параметры
pTimeStamp
Указатель на FILETIME
структуру, содержащую время последнего записи файла.
refTime
Ссылка на объект CTime
.
Возвращаемое значение
Ненулевое значение при успешном выполнении; 0, если неудачно. GetLastWriteTime
возвращает значение 0 только в том случае, если FindNextFile
этот объект никогда не вызывался CFileFind
.
Замечания
Перед вызовом GetLastWriteTime
необходимо вызвать FindNextFile
по крайней мере один раз.
Примечание.
Не все файловые системы используют ту же семантику для реализации метки времени, возвращаемой этой функцией. Эта функция может возвращать то же значение, возвращаемое другими функциями метки времени, если базовая файловая система или сервер не поддерживает сохранение атрибута времени. Сведения о форматах времени см. в WIN32_FIND_DATA
структуре. В некоторых операционных системах возвращенное время находится в локальном часовом поясе компьютера, где находится файл. Дополнительные сведения см. в API Win32 FileTimeToLocalFileTime
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::GetLength
Вызовите эту функцию-член, чтобы получить длину найденного файла в байтах.
ULONGLONG GetLength() const;
Возвращаемое значение
Длина найденного файла в байтах.
Замечания
Перед вызовом GetLength
необходимо вызвать FindNextFile
по крайней мере один раз.
GetLength
использует структуру WIN32_FIND_DATA
Win32 для получения и возврата значения размера файла в байтах.
Примечание.
По состоянию на MFC 7.0 поддерживает GetLength
64-разрядные целые типы. Ранее существующий код, созданный с помощью этой более новой версии библиотеки, может привести к предупреждению усечения.
Пример
// This code fragment prints out a very verbose directory
// listing for all the files in the root directory on the
// C: drive. After the file's name, each attribute of the
// file is printed, as are the creation, last access, and
// last write times.
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("C:\\*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
_tprintf_s(_T("%s\n\t"), (LPCTSTR)finder.GetFileName());
_tprintf_s(_T("%c"), finder.IsArchived() ? 'A' : 'a');
_tprintf_s(_T("%c"), finder.IsCompressed() ? 'C' : 'c');
_tprintf_s(_T("%c"), finder.IsHidden() ? 'H' : 'h');
_tprintf_s(_T("%c"), finder.IsNormal() ? 'N' : 'n');
_tprintf_s(_T("%c"), finder.IsReadOnly() ? 'R' : 'r');
_tprintf_s(_T("%c"), finder.IsSystem() ? 'S' : 's');
_tprintf_s(_T("%c"), finder.IsTemporary() ? 'T' : 't');
_tprintf_s(_T("\t%I64u byte(s)\n"), finder.GetLength());
CTime tempTime;
CString str;
_tprintf_s(_T("\tCreated : "));
if (finder.GetCreationTime(tempTime))
{
str = tempTime.Format(_T("%c"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
}
else
{
_tprintf_s(_T("(unavailable)\n"));
}
_tprintf_s(_T("\tLast Access: "));
if (finder.GetLastAccessTime(tempTime))
{
str = tempTime.Format(_T("%c"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
}
else
{
_tprintf_s(_T("(unavailable)\n"));
}
_tprintf_s(_T("\tLast Write : "));
if (finder.GetLastWriteTime(tempTime))
{
str = tempTime.Format(_T("%c"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
}
else
{
_tprintf_s(_T("(unavailable)\n"));
}
_tprintf_s(_T("\n"));
}
CFileFind::GetRoot
Вызовите эту функцию-член, чтобы получить корень найденного файла.
virtual CString GetRoot() const;
Возвращаемое значение
Корень активного поиска.
Замечания
Перед вызовом GetRoot
необходимо вызвать FindNextFile
по крайней мере один раз.
Эта функция-член возвращает описатель диска и имя пути, используемое для запуска поиска. Например, вызов FindFile
с *.dat
результатами GetRoot
возвращает пустую строку. Передача пути, например c:\windows\system\*.dll
, возвращаемого FindFile
результатами GetRoot
c:\windows\system\
.
Пример
Пример см. в примере CFileFind::GetFileName
.
CFileFind::IsArchived
Вызовите эту функцию-член, чтобы определить, архивирован ли найденный файл.
BOOL IsArchived() const;
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Приложения помечают архивный файл, который требуется создать резервную копию или удалить, с FILE_ATTRIBUTE_ARCHIVE
атрибутом файла, указанным в WIN32_FIND_DATA
структуре.
Перед вызовом IsArchived
необходимо вызвать FindNextFile
по крайней мере один раз.
Полный список атрибутов файла см. в функции-члене MatchesMask
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::IsCompressed
Вызовите эту функцию-член, чтобы определить, сжимается ли найденный файл.
BOOL IsCompressed() const;
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Сжатый файл помечается атрибутом FILE_ATTRIBUTE_COMPRESSED
файла, определяемого WIN32_FIND_DATA
в структуре. Для файла этот атрибут указывает, что все данные в файле сжимаются. Для каталога этот атрибут указывает, что сжатие является значением по умолчанию для только что созданных файлов и подкаталогов.
Перед вызовом IsCompressed
необходимо вызвать FindNextFile
по крайней мере один раз.
Полный список атрибутов файла см. в функции-члене MatchesMask
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::IsDirectory
Вызовите эту функцию-член, чтобы определить, является ли найденный файл каталогом.
BOOL IsDirectory() const;
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Файл, который является каталогом, помечается FILE_ATTRIBUTE_DIRECTORY
атрибутом файла, указанным в WIN32_FIND_DATA
структуре.
Перед вызовом IsDirectory
необходимо вызвать FindNextFile
по крайней мере один раз.
Полный список атрибутов файла см. в функции-члене MatchesMask
.
Пример
Эта небольшая программа рекурсирует каждый каталог на диске C:\ и выводит имя каталога.
void Recurse(LPCTSTR pstr)
{
CFileFind finder;
// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("\\*.*");
// start working for files
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
bWorking = finder.FindNextFile();
// skip . and .. files; otherwise, we'd
// recur infinitely!
if (finder.IsDots())
continue;
// if it's a directory, recursively search it
if (finder.IsDirectory())
{
CString str = finder.GetFilePath();
TRACE(_T("%s\n"), (LPCTSTR)str);
Recurse(str);
}
}
finder.Close();
}
void PrintDirs()
{
Recurse(_T("C:"));
}
CFileFind::IsDots
Вызовите эту функцию-член для проверки текущего каталога и родительских маркеров каталога при итерации файлов.
virtual BOOL IsDots() const;
Возвращаемое значение
Ненулевое значение, если найденный файл имеет имя "." или "..", указывающее, что найденный файл фактически является каталогом. В противном случае 0.
Замечания
Перед вызовом IsDots
необходимо вызвать FindNextFile
по крайней мере один раз.
Пример
Пример см. в примере CFileFind::IsDirectory
.
CFileFind::IsHidden
Вызовите эту функцию-член, чтобы определить, скрыт ли найденный файл.
BOOL IsHidden() const;
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Скрытые файлы, помеченные как FILE_ATTRIBUTE_HIDDEN
атрибут файла, определенный WIN32_FIND_DATA
в структуре. Скрытый файл не включается в обычный список каталогов.
Перед вызовом IsHidden
необходимо вызвать FindNextFile
по крайней мере один раз.
Полный список атрибутов файла см. в функции-члене MatchesMask
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::IsNormal
Вызовите эту функцию-член, чтобы определить, является ли найденный файл обычным.
BOOL IsNormal() const;
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Файлы, помеченные как FILE_ATTRIBUTE_NORMAL
атрибут файла, определенный WIN32_FIND_DATA
в структуре. Обычный файл не имеет других атрибутов. Все остальные атрибуты файла переопределяют этот атрибут.
Перед вызовом IsNormal
необходимо вызвать FindNextFile
по крайней мере один раз.
Полный список атрибутов файла см. в функции-члене MatchesMask
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::IsReadOnly
Вызовите эту функцию-член, чтобы определить, доступен ли найденный файл только для чтения.
BOOL IsReadOnly() const;
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Файл, доступный только для чтения, помечен как FILE_ATTRIBUTE_READONLY
атрибут файла, определенный WIN32_FIND_DATA
в структуре. Приложения могут читать такой файл, но они не могут записывать в него или удалять его.
Перед вызовом IsReadOnly
необходимо вызвать FindNextFile
по крайней мере один раз.
Полный список атрибутов файла см. в функции-члене MatchesMask
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::IsSystem
Вызовите эту функцию-член, чтобы определить, является ли найденный файл системным файлом.
BOOL IsSystem() const;
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Системный файл помечается атрибутом FILE_ATTRIBUTE_SYSTEM
файла, определяемого WIN32_FIND_DATA
в структуре. Системный файл является частью или используется исключительно операционной системой.
Перед вызовом IsSystem
необходимо вызвать FindNextFile
по крайней мере один раз.
Полный список атрибутов файла см. в функции-члене MatchesMask
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::IsTemporary
Вызовите эту функцию-член, чтобы определить, является ли найденный файл временным.
BOOL IsTemporary() const;
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Временный файл помечается атрибутом FILE_ATTRIBUTE_TEMPORARY
файла, определяемого WIN32_FIND_DATA
в структуре. Временный файл используется для временного хранилища. Приложения должны записывать в файл только при необходимости. Большая часть данных файла остается в памяти, не сбрасываясь на носитель, так как файл скоро будет удален.
Перед вызовом IsTemporary
необходимо вызвать FindNextFile
по крайней мере один раз.
Полный список атрибутов файла см. в функции-члене MatchesMask
.
Пример
Пример см. в примере CFileFind::GetLength
.
CFileFind::m_pTM
Указатель на CAtlTransactionManager
объект.
CAtlTransactionManager* m_pTM;
Замечания
CFileFind::MatchesMask
Вызовите эту функцию-член, чтобы проверить атрибуты файла в найденном файле.
virtual BOOL MatchesMask(DWORD dwMask) const;
Параметры
dwMask
Указывает один или несколько атрибутов файла, определенных в WIN32_FIND_DATA
структуре, для найденного файла. Чтобы найти несколько атрибутов, используйте побитовый оператор OR (|
). Любое сочетание следующих атрибутов приемлемо:
FILE_ATTRIBUTE_ARCHIVE
Файл является архивным файлом. Приложения используют этот атрибут, чтобы отмечать файлы для резервного копирования или удаления.FILE_ATTRIBUTE_COMPRESSED
Файл или каталог сжимается. Для файла это означает, что все данные в файле сжимаются. Для каталога это означает, что сжатие по умолчанию для только что созданных файлов и подкаталогов.FILE_ATTRIBUTE_DIRECTORY
Файл является каталогом.FILE_ATTRIBUTE_NORMAL
Файл не имеет других атрибутов. При использовании этого атрибута не допускается использование других атрибутов. Все остальные атрибуты файла переопределяют этот атрибут.FILE_ATTRIBUTE_HIDDEN
Файл скрыт. Не следует включать в обычный список каталогов.FILE_ATTRIBUTE_READONLY
Файл доступен только для чтения. Приложения могут считывать файл, но не могут записывать в него или удалять его.FILE_ATTRIBUTE_SYSTEM
Файл является частью или используется исключительно операционной системой.FILE_ATTRIBUTE_TEMPORARY
Файл используется для временного хранилища. Приложения должны записывать в файл только при необходимости. Большая часть данных файла остается в памяти, не сбрасываясь на носитель, так как файл скоро будет удален.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError
Win32.
Замечания
Перед вызовом MatchesMask
необходимо вызвать FindNextFile
по крайней мере один раз.
Пример
// This code fragment shows all of the files in the root directory
// of drive C: which have either the hidden attribute or the system
// attribute, or both.
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("C:\\*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
if (finder.MatchesMask(FILE_ATTRIBUTE_HIDDEN |
FILE_ATTRIBUTE_SYSTEM))
{
_tprintf_s(_T("%s\n"), (LPCTSTR) finder.GetFileName());
}
}
См. также
CObject
Класс
Диаграмма иерархии
CFtpFileFind
Класс
CGopherFileFind
Класс
CInternetFile
Класс
CGopherFile
Класс
CHttpFile
Класс