Поделиться через


Класс 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".

Иерархия наследования

CObject

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();

Замечания

Закрывает файл, указанный текущим значением дескриптора поиска. Переопределите эту функцию, чтобы изменить поведение по умолчанию.

Чтобы получить допустимый дескриптор поиска, необходимо вызвать FindFileFindNextFile или функции по крайней мере один раз. FindNextFile Функции FindFile используют дескриптор поиска для поиска файлов с именами, соответствующими заданному имени.

CFileFind::FindFile

Вызовите эту функцию-член, чтобы открыть поиск по файлу.

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

Параметры

pstrName
Указатель на строку, содержащую имя файла для поиска. Если вы проходите NULLpstrNameFindFile, выполняет поиск в дикой карта (*.*).

dwUnused
Зарезервировано для создания FindFile полиморфных с производными классами. Должно быть равно 0.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastErrorWin32.

Замечания

После вызова FindFile для начала поиска файлов вызовите FindNextFile для получения последующих файлов. Перед вызовом любой из следующих функций-членов атрибута необходимо вызвать FindNextFile по крайней мере один раз:

Пример

Пример см. в примере CFileFind::IsDirectory.

CFileFind::FindNextFile

Вызовите эту функцию-член, чтобы продолжить поиск файла из предыдущего вызова FindFile.

virtual BOOL FindNextFile();

Возвращаемое значение

Ненулевое значение, если есть больше файлов; ноль, если найденный файл является последним в каталоге или произошла ошибка. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastErrorWin32. Если найденный файл является последним файлом в каталоге, или если соответствующие файлы не найдены, GetLastError функция возвращается ERROR_NO_MORE_FILES.

Замечания

Перед вызовом любой из следующих функций-членов атрибута необходимо вызвать FindNextFile по крайней мере один раз:

FindNextFile выполняет оболочку функции FindNextFileWin32.

Пример

Пример см. в примере 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 результатами GetRootc:\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. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastErrorWin32.

Замечания

Перед вызовом 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 Класса