Атрибуты файлов и управление каталогами

Существует возможность просмотра обозначенного каталога с целью поиска файлов и других каталогов, имена которых соответствуют данному шаблону, сразу с получением атрибутов файлов. Для выполнения поиска требуется дескриптор поиска (search handle), получаемый при помощи функции FindFirstFile. Для нахождения файлов, имена которых удовлетворяют данным условиям, употребляется функция FindNextFile, а для прекращения поиска — функция Атрибуты файлов и управление каталогами FindClose.

HANDLE FindFirstFile(LPCTSTR lpFileName, LPWIN32_FIND_DATA lpffd)

Возвращаемое значение:дескриптор поиска. Значение INVALID_HANDLE_VALUE показывает на неудачное окончание функции.

В процессе поиска имен, соответственных разыскиваемому, функция FindFirstFile инспектирует имена не только лишь файлов, да и подкаталогов. Возвращенное функцией значение дескриптора типа HANDLE употребляется для продолжения поиска.

Характеристики

lpFileName Атрибуты файлов и управление каталогами — указатель на строчку, содержащую имя каталога либо полное название файла, при указании которых можно использовать метасимволы (? и *). Если нужно выполнить поиск определенного файла, метасимволы опускаются.

lpffd — указатель на структуру WIN32_FIND_DATA, которая воспринимает информацию о первом отысканном файле либо каталоге, который удовлетворяет аспекту поиска, если такой был Атрибуты файлов и управление каталогами найден.

Структура WIN32_FIND_DATA определяется последующим образом:

typedef struct_WIN32_FIND_DATA {

DWORD dwFileAttributes;

FILETIME ftCreationTime;

FILETIME ftLastAccessTime;

FILETIME ftLastWriteTime;

DWORD nFileSizeHigh;

DWORD nFileSizeLow;

DWORD dwReserved0;

DWORD dwReserved1;

TCHAR cFileName[MAX_PATH];

TCHAR cAlternateFileName[14];

} WIN32_FIND_DATA;

Параметр dwFileAttributes можно тестировать на присутствие значений, обрисованных при Атрибуты файлов и управление каталогами рассмотрении функции CreateFile, также неких других значений, к примеру, FILE_ATTRIBUTE_SPARSE_FILE либо FILE_ATTRIBUTE_ENCRYTPED, которые не инсталлируются функцией CreateFile. Описание меток времени 3-х типов (время сотворения, время последнего воззвания и время последнего конфигурации) приведено в одном из последующих разделов. Наименования полей размера файла (nFileSizeHigh и nFileSizeLow) молвят Атрибуты файлов и управление каталогами сами за себя. cFileName — это не полное название файла, содержащее путь доступа, а само название файла. cAlternateFileName — название файла в формате DOS 8.3 (включая точку); эта информация изредка употребляется и может пригодиться только для того, чтоб найти, каким будет название файла в файловой системе FAT16.

В почти всех случаях требуется просматривать каталог Атрибуты файлов и управление каталогами с целью поиска файлов, имена которых соответствуют некому шаблону, содержащему метасимволы ? и *. Для этого следует использовать дескриптор поиска, приобретенный из функции FindFirstFile, в каком содержится информация об разыскиваемом имени, и вызвать функцию FindNextFile.

BOOL FindNextFile(HANDLE hFindFile, LPWIN32_FIND_DATA lpffd)

Функция FindNextFile возвращает значение FALSE, если аргументы Атрибуты файлов и управление каталогами недействительны либо если не удается отыскать файл, удовлетворяющий аспекту поиска, при этом последнему случаю соответствует возвращаемое значение функции GetLastError, равное ERROR_NO_MORE_FILES.

После того как поиск завершен, дескриптор поиска должен быть закрыт. Функцию CloseHandle для этой цели использовать нельзя. Это редчайший пример нарушения правила, согласно Атрибуты файлов и управление каталогами которому функция CloseHandle применима к дескрипторам хоть какого типа; в этом случае закрытие дескриптора поиска схожим методом приведет к генерации исключения. Заместо этого нужно использовать последующую функцию:

BOOL FindClose(HANDLE hFindFile)

Функция GetFileInformationByHandle позволяет получить информацию о определенном файле, на который показывает открытый дескриптор файла. Она также возвращает поле nNumberOfLinks Атрибуты файлов и управление каталогами, в каком содержится количество жестких ссылок на файл, установленных функцией CreateHardLink.

Описанный способ расширения метасимволов нужен даже в программках, запускаемых на выполнение из командной строчки DOS, так как оболочка DOS не расширяет метасимволы.

Полные названия файлов

Полное название файла можно получить, используя функцию GetFullPathName. Функция GetShortPathName возвращает название файла в Атрибуты файлов и управление каталогами формате DOS 8.3, в предположении, что данный том поддерживает недлинные названия файлов.

В NT 5.1 была введена функция SetFileShortName, позволяющая поменять имеющееся сокращенное название файла либо каталога. Время от времени это оказывается комфортным, так как интерпретация сокращенных названий файлов нередко вызывает затруднения.


attestacionnij-bilet-25.html
attestacionnij-list-kabineta-himii.html
attestacionnij-list-po-preddiplomnoj-praktike.html