Ввод/вывод файлов. Создание и открытие файлов, страница 3

Функция

Назначение

AreFileApisANSI

Определяет, использует ли набор файловых функций Win32 кодовую страницу набора символов ANSI или OEM

CancellO

Отменяет все невыполненные операции ввода/вывода для вызывающей нити

CloseHandte

Закрывает открытый дескриптор объекта

CompareFileTime

Сравнивает две 64-разрядные отметки времени файла

CopyFile

Копирует существующий файл в новый файл

CopyFileEx

Копирует существующий файл в новый файл, сохраняя расширенные атрибуты

CreateDirectory

Создает новый каталог

CreateDirectoryEx

Создает новый каталог с атрибутами образца каталога

CreateFite

Создает, открывает или переопределяет размеры такого объекта, как файл, канал, ресурс связи, дисковое устройство или консоль

CreateFileMapping

Создает именованный или неименованный объект отображения файла

DeleteFile

Удаляет файл

DosDateTimeToFileTime

Преобразует значения даты и времени MS-DOS в 64-разрядную отметку времени файла

FileTkneToDosDateTime

Преобразует 64-разрядную отметку времени файла в значения даты и времени MS-DOS

FileTimeToLocalFHeTime

Преобразует отметку времени файла, соответствующую значению универсального скоординированного времени (UTC — Universal Coordinated Time), в отметку времени файла, соответствующую значению местного времени

FiteTimeToSystemTime

Преобразует 64-разрядную отметку времени файла в формат системного времени

FindCtose

Закрывает дескриптор поиска

FindCloseChangeNotrfkation

Прекращает отслеживание дескриптора контроля изменений

FindFirstChangeNotifkation

Создает дескриптор контроля изменений

FindFirstFile

Ищет в каталоге первый файл, имя которого соответствует искомому имени

FindFirstFileEx

Ищет в каталоге файл, имя и атрибуты которого соответствуют искомому имени

FindNextChangeNotification

Запрашивает следующий дескриптор контроля изменений

FindNextFile

Находит следующий файл, имя которого соответствует искомому имени (вслед за вызовом функции FindFirstFile)

FlushFileBuffers

Записывает все буферизированные данные в файл и очищает буфера файла                                                                  ^

Flush VfewOfFite

Записывает на диск ряд байтов из отображенного представления файла

GetFileAttributes

Возвращает атрибуты файла

GetFileAttributesEx

Возвращает расширенные атрибуты файла

GetFilelnformationByHandle

Позволяет получить информацию о файле

GetFileSize

Позволяет определить размер файла в байтах

GetFileTime

Позволяет определить дату и время создания, последнего обращения и последнего изменения файла

GetFileType

Возвращает тип файла

GetFullPathName

Позволяет определить полный путь к файлу и его имя

GetOverlappedResutt

Возвращает результаты операции перекрывающегося ввода/ вывода, выполненной на объекте

GetStdHandle

Возвращает дескриптор стандартного потока ввода информации, вывода информации или вывода сообщений об ошибках

GetTempFileName

Создает временное имя файла

GetTempPath

Позволяет определить путь к каталогу для временных файлов

LocalFileTimeToFileTime

Преобразует отметку времени файла, соответствующую значению местного времени, в отметку времени файла, соответствующую значению всеобщего скоординированного времени (UTC — Universal Coordinated Time)

LockFile

Блокирует участок в открытом файле

LockFileEx

Блокирует ряд байтов в открытом файле для разделяемого или монопольного доступа

MapViewOfFile

Отображает представление файла в адресное пространство вызывающего процесса

MapViewOfFileEx

Отображает представление файла в предполагаемое адресное пространство вызывающего процесса

MoveFile

Перемещает файл или каталог и его подкаталоги

MoveFileEx

Перемещает файл или каталог с применением расширенных опций

OpenFileMapping

Открывает именованный объект отображения файла

ReadFile

Читает данные из файла

ReadFileEx

Читает данные из файла асинхронно

RemoveDirectory

Удаляет пустой каталог

SearchPath

Ищет файл

SetEndOfFile

Перемещает позицию конца файла (EOF — end-of-file) в текущую позицию указателя файла

SetFileApisToANSI

Устанавливает кодовую страницу в кодовую страницу набора символов ANSI для файловых функций Win32

SetFileApisToOEM

Устанавливает кодовую страницу в кодовую страницу набора символов OEM для файловых функций Win32

SetFiteAttributes

Устанавливает атрибуты файла

SetFilePointer

Перемещает указатель файла в открытом файле

SetFileTime

Устанавливает дату и время создания файла, его последнего изменения или последнего обращения к нему

SetStdHandle

Устанавливает дескриптор стандартного потока ввода информации, вывода информации или вывода сообщений. об ошибках

SystemTimeToFileTime

Преобразует системное время в отметку времени файла

UnlockFile

Разблокирует область в открытом файле

UnlockFileEx

Разблокирует ранее заблокированный ряд байтов в открытом файле

UnmapViewOfFHe

Отменяет отображение файла в адресном пространстве вызывающего процесса

WriteFite

Записывает данные в файл

WriteFileEx

Записывает данные в файл асинхронно

AreFileApisANSI                          Windows 98   •  Windows 2000

Описание

Функция  AreFileApisANSI позволяет определить, использует ли набор файловых функций Win32 кодовую страницу набора символов ANSI или OEM. Эта функция применяется в 8-разрядных операциях ввода и вывода на консоль. От установки кодовой страницы зависит выполнение функций, перечисленных в разделе "См. также" в описании данной функции.

Синтаксис

BOOL AreFileApisANSI( VOID )

Параметры

Эта функция не имеет параметров.

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

BOOL. Если в наборе файловых функций Win32 используется кодовая страница ANSI, возвращаемое значение — TRUE; а если используется кодовая страница OEM, возвращаемое значение — FALSE.

Включаемый файл

winbase.h

См. также

SetFileApisToANSI, SetFileApisToOEM, CopyFile, CreateDirectory, CreateFile, CreateProcess, DeleteFile, FindFirstFile, FindNextFile, GetCurrentDirectory, GetDiskFreeSpace, GetDriveType, GetFileAttributes, GetFullPathName, GetSystemDirectory, GetTerapFileName, GetTempPath, GetVolumelnformation, GetWindowsDirectory, LoadLibrary, LoadLibraryEx MoveFile, MoveFileEx, RemoveDirectory, SearchPath, SetCurrentDirectory SetFileAttributes

Пример

В следующем примере показана функция, которая проверяет, должны Л1 быть файловые функции Win32 установлены на поддержку ANSI ил! OEM, в зависимости от значения переданного параметра. Если файловы функции установлены неправильно, выполняется их установка на под держку ANSI или OEM с применением функций SetFileApisToANSI шц SetFileApisToOEM.

VOID CheckFileAPIs ( BOOL bANSI  ) {

if   (   bANSI  SS   ! AreFileApisANSI ()    ) SetFileApisToANSK) ;

else if   (    ! bANSI  &&   AreFileApisANSI ()    ) SetFileApisToOEMO ; }

CancellO                               Windows 98   • Windows 2000

Описание

Функция CancellO отменяет все невыполненные операции ввода и вывода, запросы на выполнение которых были выданы для указанного дескриптора файла вызывающей нитью. Эта функция не отменяет операции ввода/вывода, запросы на выполнение которых выданы для дескриптора файла другими нитями. Она применяется только к операциям ввода/вывода, которые были выданы в качестве перекрывающегося ввода/вывода. Если эти операции ввода/вывода не являются перекрывающимися, они не могут своевременно выполнить возврат, чтобы дать возможность нити вызвать функцию CancellO. Все отмененные операции ввода/вывода завершаются с ошибкой ERROR_OPERATION_ABORTED.

Синтаксис

BOOL CancelIO( HANDLE hFile )

Параметры hFile

HANDLE. Дескриптор файла, для которого должна быть отменена невыполненная операция ввода/вывода.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

CreateFile, LockFileEx, ReadFile, ReadFileEx, WriteFile, WriteFileEx

CloseHandl                            * Windows 98   * Windows 2000

Описание

ФУНКЦИЯ CloseHandle закрывает открытый дескриптор объекта. Эта функция объявляет недействительным дескриптор объекта, уменьшает на единицу число дескрипторов объекта и проверяет сохранность объекта. После закрытия последнего дескриптора объекта он удаляется из системы. В приложении эту функцию можно использовать для закрытия дескрипторов объектов следующих типов: Ввод или вывод на консоль Файл события Отображение файла Взаимоисключающая блокировка Именованный канал Процесс Семафор Нить Лексемы (только Windows 2000)

Синтаксис

BOOL CloseHandle( HANDLE hObject )

Параметры

hObject

HANDLE. Дескриптор объекта, который должен быть закрыт. BOOL. В случае успешного выполнения — TRUE; в ином случае —

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

FALSE.

Включаемый файл

winbase.h

См. также

CreateFile, DeleteFile

Пример

См. пример для функции CompareFileTime.

ComoareFileTime                        «• Windows 98   «• Windows 2000

Описание

Функция < CompareFileTime сравнивает две 64-разрядные отметки времени файла.

Синтаксис

LONG CompareFileTime( CONST FILETIME* Ipftl, CONST FILETIME*Ipft2)

Параметры Ipftl

CONST FILETIME*. Указатель на структуру FILETIME, которая задает первую 64-разрядную отметку времени файла. Определение структуры FILETIME приведено ниже.

Ipft2

CONST FILETIME*. Указатель на структуру FILETIME, которая задает вторую 64-разрядную отметку времени файла. Определение структуры FILETIME приведено ниже.

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

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

Таблица 17.2. Возвращаемые значения функции CompareFileTime

Значение

Описание

-1

Отметка времени первого файла меньше отметки времени второго файла.

0

Отметка времени первого файла равна отметке времени второго файла.

+1

Отметка времени первого файла больше отметки времени второго файла.

Включаемый файл

winbase.h

См. также

GetFileTime

Определение FILETIME

typedef struct    FILETIME {

DWORD dwLowDateTime ;

DWORD dwHighDateTiroe; }    FILETIME;                                             .        .

Члены

:

dwLowDate Time

DWORD. Младшие 32 бита отметки времени файла.

dwffighDateTime

DWORD. Старшие 32 бита отметки времени файла.

Пример

В следующем примере сравниваются отметки времени двух файлов, FILE1.TXT и FILE2.TXT, когда пользователь выбирает пункт меню Test!. Проверяются результаты выполнения функции CompareFileTime, и отображается соответствующее о'кно сообщения с результатами сравнения.

См.    \local-sources\chapl7\17-01.txt

CopyFile                                  Windows 98   * Windows 2000

Описание

Функция CopyFile копирует файл в новый файл. В новый файл копируются такие атрибуты файла, как FILE_ATTRIBUT E_READONLY. Атрибуты защиты в новый файл не копируются.

Синтаксис

BOOL CopyFile( LPCTSTR IpszExistingFile, LJPCTSTR IpszNewFile, BOOL bFaillfExists )

Параметры

IpszExistingFile

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую имя копируемого файла.

IpszNewFile

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую имя нового файла.

bFaillfExists

BOOL. Указывает, какое действие должно быть выполнено, если файл с именем, указанным параметром IpszNewFile, уже существует. Если этот параметр установлен равным TRUE и новый файл уже существует, функция не достигает успеха. Если этот параметр установлен равным FALSE и новый файл уже существует, функция перезаписывает существующий файл и завершается успешно

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

MoveFile, CreateFlle, DeleteFile

Пример

В следующем примере файл FILE1.TXT копируется в файл FILE2.TXT, когда пользователь выбирает пункт меню Test!. Если FILE2.TXT уже существует, пользователь перед перезаписью существующего файла получает запрос.

См.    \local-sources\chapl7\17-02.txt

CopyFileEx                               Windows 98   • Windows 2000

Описание

Функция CopyFileEx копирует существующий файл в новый. Эта функция сохраняет расширенные атрибуты, структурированную память OLE, альтернативные потоки данных NTFS и атрибуты файла. Атрибуты защиты существующего файла в новый файл не копируются. Функция CopyFileEx позволяет также следить за выполнением копирования.

Синтаксис

BOOL CopyF11eEx( LPCTSTR IpszExistingFile, LPCTSTR IpszNewFile, LPPROGRESS_ROUTINE IpProgressRoutine, LPVOID IpData, LPBOOL pbCancel, DWORD dwCopyFlags )

Параметры

IpszExistingFile

LPCTSTR Указатель на строку с нулевым символом в конце, содержащую имя файла, который должен быть скопирован.

IpszNewFile

LPCTSTR. Указатель на строку с нулевым символом в конце, которая содержит новое имя файла.

IpProgressRoutine

LPPROGRESS_ROUTINE. Адрес функции обратного вызова, которая вызывается при копировании каждой части файла. Этот параметр может быть равен NULL Определение функции обратного вызова приведено ниже.

IpData

LPVOID. Значение, определяемое приложением, которое должно быть передано функции обратного вызова.

pbCancel

LPBOOL. Указатель на логическую переменную, которая может использоваться для отмены операции. Если при выполнении копирования этот флажок устанавливается равным TRUE, оно отменяется.

dwCopy/laji

DWORD. Определяет способ копирования файла. Этот параметр может представлять собой комбинацию значений, перечисленных в табл. 17.3.

Таблица 17.3. Значения параметра dwCopyFlags функции CopyFileEx

Значение

Описание

COPY_FILE_FAILJF_EXISTS

Операция копирования немедленно завершается неудачей, если файл назначения уже существует.

COPY_FILE_RESTARTABLE

Если операция копирования не достигает успеха, ход выполнения копирования регистрируется в файле назначения. Операцию копирования, завершившуюся неудачно, можно перезапустить позднее, указав те же значения для параметров IpExistingFile и IpNewFile.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

CreateFile, CopyFile, MoveFile

Синтаксис обратного вызова DWORD WINAPI CopyProgressRoutine( LARGEJNTEGER TotalFileSize, LARGEJNTEGER Total BytesTransferred, LARGE JNTEGER StreamSize, LARGEJNTEGER StreamBytesTransferred, DWORD dwStreamNumber. DWORD dwCallbackReason, HANDLE hSourceFiIe, HANDLE, hDestinationFile, LPVOID IpDala )

Параметры обратного вызова

TotalFileSize

LARGEJNTEGER. Размер файла в байтах.

TotalBytesTransferred

LARGE_INTEGER Общее число байтов, перемещенных из файла ис«Я точника в файл назначения с начала операции копирования.

StreamSize

LARGEJNTEGER Общий размер текущего файлового потока, в байтах.;

StreamBytes TransJ

'erred

LARGEJNTEGER. Общее число байтов в текущем потоке, перемещен-' ных из файла источника в файл назначения с начала операции копире-^ вания.

dwStreamNumber

DWORD. Текущий поток. При первом выполнении функции обратноч го вызова поток имеет номер 1 .

dwCallbackReason

DWORD. Причина выполнения функции обратного вызова. Если этот параметр установлен равным CALLBACK_CHUNKJ'INISHED, скопирована очередная часть файла данных. Если этот параметр установлен равным CALLBACK_STREAM_SWITCH, создан и должен быть вскоре скопирован еще один поток. Это — причина выполнения функции обратного вызова в первый раз.

hSourcefile

HANDLE. Дескриптор файла источника.

hDestinationFile

HANDLE. Дескриптор файла назначения.

IpData

LPVOID. Параметр IpData, переданный функции CopyFileEx.

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

чение обратного вызова DWORD. Функция обратного вызова должна возвратить значение PROGRESSJ3ONTINUE для продолжения операции копирования, PROGRESS J3ANCEL — для отмены операции копирования и удаления файла назначения, PROGRESS_STOP — для прекращения операции копирования или PROGRESSJJUIET — для продолжения операции копирования без дальнейшего выполнения функции обратного вызова. 98 защита файла и каталога не используется, поскольку эта операционная система не может обращаться к диску, отформатированному в файловой системе NTFS.

Синтаксис

BOOL CreateDirectory( LPCTSTR IpszPath, LPSECURITY_ATTRIBUTESIpSecurityAttributes )

Параметры

IpszPath

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую путь к каталогу, который должен быть создан. Длина строки не должна превышать МАХ_РАТН символов. В приложении Windows 2000 можно обойти это ограничение, вызвав широкую (W) версию функции CreateDirectory и поместив в начале строки символы "\\?\" или "\\7\UNC\" для отмены интерпретации пути.

IpSecurityAttributes LPSECURITY_ATTRIBUTES. Указатель на структуру SECURITY_ATTRIBUTES, которая указывает атрибуты защиты для каталога. Файловая система должна обеспечивать поддержку защиты на уровне файловой системы NTFS; в ином случае этот параметр не имеет силы. Этот параметр не применяется в Windows 98, поскольку она не имеет файловой системы, которая поддерживает защиту.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

CreateDirectoryEx, RemoveDirectory

Пример         .

В следующем примере создается каталог на другом компьютере с использованием функции CreateDirectory, когда пользователь выбирает пункт меню Test. На компьютере с именем "Bills-PC" создается каталог "New Directory" с использованием имени ресурса "Bills-C".

См.    \local-sources\chapl7\17-03. txt

CreateDirectoryEx                        * Windows 98   * Windows 2000

Описание

Функция CreateDirectoryEx аналогична CreateDirectory, за исключением того, что новый каталог сохраняет атрибуты заданного образца каталога. Если применяемая файловая система поддерживает защиту файлов и каталогов, эта функция применяет указанный дескриптор зашиты к новому каталогу. Новый каталог сохраняет также другие атрибуты образца каталога.

Синтаксис

BOOL CreateDirectoryEx( LPCTSTR IpTemplateDirectory, LPCTSTR IpNewDirectory, LPSECURITY_ATTRIBUTES IpSecurityAttributes )

Параметры

IpTemplateDirectory

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую путь к каталогу, который будет использоваться в качестве образца при создании нового каталога.

IpNewDirectory

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую путь к каталогу, который должен быть создан.

CreateDirectory                          Windows 98   * Windows 2000

Описание

Функция CreateDirectory позволяет создать новый каталог. Если основополагающей файловой системой является NTFS или другая файловая система, которая поддерживает защиту файлов и каталогов, функция применяет к новому каталогу указанный дескриптор защиты. В ОС Windows

IpSecurityAttribute:

s   LPSECURITY_ATTRIBUTES. Указатель на структуру SECURITY_ATTRIBUTES, которая указывает атрибуты защиты для каталога. Файловая система должна обеспечивать поддержку защиты на уровне файловой системы NTFS; в ином случае этот параметр не имеет силы. Этот параметр не применяется в Windows 98, поскольку в ней отсутствует файловая система, которая поддерживает защиту. 

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

CreateDirectory, RemoveDirectory

Пример

Следующий пример аналогичен примеру для функции CreateDirectory, за исключением того, что новый каталог создается с использованием функции CreateDirectoryEx с теми же атрибутами, что и образец каталога "Template Directory".

См.     \local-sources\chapl7\17-04. txt

CreateFileWindows 98   •  Windows 2000

Описание

Функция CreateFile создает, открывает такие объекты, как файл, канал, ресурс связи, дисковое устройство или поток ввода/вывода на консоль или изменяет их размеры. Эта функция открывает также каталог для доступа. Функция CreateFile возвращает дескриптор, который может применяться для доступа к объекту.

Синтаксис

HANDLE CreateFile( LPCTSTR IpszName, DWORD dwAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES IpSecurityAttributes, DWORD dwCreate, DWORD dwAttrsAndnags, HANDLE hTemplateFile )

Параметры

IpszName

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую имя файла, канала, ресурса связи, дискового устройства, консоли или другого объекта, который необходимо создать, открыть или изменить его размеры. Если параметр IpszName указывает путь к каталогу, длина строки не должна превышать МАХ_РАТН символов. В приложении Windows 2000 можно обойти это ограничение, вызвав широкую (W) версию функции CreateFile и поместив в начале строки символы "\\?\" или "\\7\UNC\" для отмены интерпретации пути.

dwAccess

DWORD. Тип доступа к файлу. Приложение может получить доступ для чтения, записи, для чтения и записи или для запроса устройства. Этот параметр может принимать значения, перечисленные в табл. 17.4, Для получения доступа для чтения и записи необходимо установить и GENERIC_READ, и GENERIC_WRITE

dwShareMode

DWORD. Определить способ совместного доступа к файлу. Этот параметр может состоять из значений, перечисленных в табл. 17.5.

lp Security Attributes

LPSECURITY_ATTRIBUTES. Указатель на структуру SECURITY_ATTRIBUTES, которая указывает атрибуты защиты для каталога. Файловая система должна обеспечивать поддержку защиты на уровне файловой системы NTFS; в ином случае этот параметр не имеет силы. Этот параметр не применяется в Windows 98, поскольку она не имеет файловой системы, которая поддерживает защиту.

Таблица 17.4. Значения параметра dwAccess функции CreateFile

Значение

Описание

0

Разрешить приложению запрашивать атрибуты устройства без фактического доступа к устройству.

GENERIC_READ

Определить доступ для чтения. Приложение может читать данные из файла и перемещать указатель файла.

GENERIC WRITE

Определить доступ для записи. Приложение может писать данные в файл и перемещать указатель файла.

Таблица 17.5. Значения параметра dwShareMode функции CreateFile

Значение

Описание

0

Запретить совместное использование файла.

FILE_SHARE_DELETE

(Только Windows 2000) Последующие операции открытия завершатся успешно, только если затребован доступ для удаления.

FILE_SHARE_READ

Файл может открываться для чтения. Это значение должно быть указано при открытии клиентской стороны почтового слота.

FILE SHARE WRITE

Файл может открываться для записи.

dwCreate

DWORD. Определяет действие, которое необходимо выполнить в том случае, если файл существует, и в том случае, если он не существует. Этот параметр должен иметь одно из значений, приведенных в табл. 17. 6.

Таблица 17.6. Значения параметра dwCreate функции CreateFile

Значение

Описание

CREATE ALWAYS

Создать новый файл. Функция перезаписывает файл, если он существует.

CREATE_NEW

Создать новый файл. Функция не достигает успеха, если указанный файл уже существует.

OPEN_ALWAYS

Открыть файл, если он существует. Если файл не существует, функция создает файл, как если бы параметр dwCreate имел значение CREATE_NEW.

OPEN EXISTING

Открыть файл. Функция не достигает успеха, если файл не существует.

TRUNCATE_EXISTING

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

dwAttrsAnd 'Flags

DWORD. Указывает атрибуты файла и флажки для файла. Приемлема любая комбинация значений атрибутов, приведенных в табл. 17.7; однако все прочие атрибуты файла отменяют атрибут FILE_ATTRIBUTE_NORMAL.

Таблииа 17.7. Значения параметра dwAttrsAndFlags функции CreateFile

Значение

Описание

FILE_ATTRIBUTE_ARCHIVE

Файл является архивным. Это значение позволяет отметить файл для резервного копирования или удаления.

FILE_ATTRIBUTE_ATOMIC_WRITE

Зарезервированное значение; не должно использоваться.

FILE_ATTRIBUTE_COMPRESSED

Файл или каталог сжат. Применительно к файлу это означает, что все данные в файле сжаты. Если сжат каталог, то в нем создаваемые файлы и подкаталоги будут сжаты по умолчанию.

FILE_ATTRIBUTE_ENCRYPTED

Файл или каталог зашифрован. Применительно к файлу это означает, что все данные в файле зашифрованы. Если зашифрован каталог, шифрование будет применяться по умолчанию для вновь созданных файлов и подкаталогов. Этот флажок не имеет силы, если указан также атрибут FILE_ATTRIBUTE_SYSTEM.                                  

FILE_ATTRJBUTE_HIDDEN

Файл является скрытым.

FILE_ATTRIBUTE_NORMAL

Файл не имеет атрибутов. Это значение допустимо при условии, что используется отдельно.

FH.E_ATTRIBUTE_NOT_CONTENT_INDEXED

Файл не должен быть проиндексирован службой индексации информационного наполнения.

FILE_ATTRIBUTE_OFFLINE

Данные файла не являются непосредственно доступными. Указывает, что данные файла физически перемещены на автономное запоминающее устройство.

FH.E_ATTRIBUTE_READONLY

Файл предназначен только для чтения.

FILE_ATTRIBUTE_SYSTEM

Файл является системным.

FILE_ATTRIBUTE_TEMPORARY

Файл используется для временного хранения данных.

FILE_ATTRIBUTE_XACTION_WRITE

Зарезервированное значение; не должно использоваться.

FILE_FLAG_BACKUP_SEMANTICS

(Только Windows 2000) Открывает или создает файл для операции резервного копирования или восстановления. Операционная система следит за тем, чтобы вызывающий процесс отменил проверку прав защиты файла, при условии, что имеет на это необходимое разрешение. Соответствующими разрешениями являются SE_BACKUP_NAME и SE_RESTORE_NAME. В приложении можно также установить этот флажок для получения дескриптора каталога. Дескриптор каталога можно передавать некоторым функциям Win32 вместо дескриптора файла.

FB.E_aAG_DELETE_ON_CLOSE

Файл должен быть удален сразу после того, как будут закрыты все его дескрипторы.

FILE_FLAG_NO_BUFFERING

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

FILE_FLAG_OPEN_REPARSE_POINT

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

FILE_FLAG_OPEN_NO_RECAL

Указывает, что затребованы данные файла, но файл должен no-прежнему находиться на удаленном запоминающем устройстве. Файл не следует снова перемещать на локальное запоминающее устройство. Этот флажок предназначен для использования в системах управления удаленными запоминающими устройствами или в системах иерархического управления памятью (Hierarchical Storage Management).

FILE_FLAG_OVERLAPPED

Выполнять перекрывающиеся операции чтения и записи. Операции ReadFile, WrrteFile, ConnectNamedPipe и TransactNamedPipe, для выполнения которых требуется много времени, возвращают сообщение об ошибке ERROR_IO_PENDING. После завершения операции предусмотрена также установка в сигнальное состояние определенного события. Если указан флажок FILE_FLAG_OVERLAPPED, в качестве одного из параметров вызова функций ReadFile и WrrteFile   , должна быть указана структура OVERLAPPED. Если указан флажок FILE_FLAG_OVERLAPPED, операционная система не поддерживает указатель файла. Позиция файла должна быть передана в структуре OVERLAPPED.

HLE_FLAG_POSIX_SEMANTICS

Указывает, что доступ к файлу должен осуществляться согласно правилам POSIX.

RLE_FLAG_RANDOM_ACCESS

Оптимизировать кэширование файлов для произвольного доступа к файлу.

HL£_FLAG_SEQUENTIAL_SCAN

Оптимизировать кэширование файлов для последовательного доступа к файлу.

HLE_H.AG_WRITE_THROUGH

Запись будет выполняться непосредственно в файл, обходя кэш.

HTemplateFile

Если функция CreateFile открывает клиентскую сторону именованного канала, параметр dwAttrsAndFlags может также содержать информацию качества обеспечения защиты (SQOS — Security Quality of Service). Если в вызывающем приложении указан флажок SECURITY_SQOS_PRESENT, параметр dwAttrsAndFlags может содержать одно или несколько значений, приведенных в табл. 17.8. HANDLE. Дескриптор с правами доступа GENERIC_READ к шаблону файла. Шаблон файла предоставляет расширенные атрибуты для создаваемого файла.

Таблица 17.8. Флажки защиты dwAttrsAndFlags функции CreateFile

Значение

Описание

SECURITY_ANONYMOUS

Сервер может выступать в роли клиента в режиме воплощения Anonymous (анонимный доступ).

SECURITY_CONTEXT_TRACKING

Указывает, что режим контроля защиты (Security Tracking Mode) является динамическим. Если этот флажок не указан, режим контроля защиты является статическим.

SECURITY_DELEGATION

Сервер может выступать в роли клиента в режиме воплощения Delegation (делегирование).

SECURITY_EFFECTIVE_ONLY

Указывает, что серверу доступны только определенные свойства контекста защиты клиента. Если этот флажок не указан, серверу доступны все свойства контекста защиты клиента. Этот флажок позволяет клиенту ограничивать группы свойств и права, которые могут использоваться сервером, выступающим в роли клиента.

SECURITYJDENTIFICATION

Сервер может выступать в роли клиента в режиме воплощения Identification (идентификация).

SECURITYJMPERSONATION

Сервер может выступать в роли клиента в режиме воплощения Impersonation.

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

HANDLE. В случае успешного выполнения — дескриптор открытого файла. Если файл существовал до вызова функции CreateFile и параметр dwCreate имеет значение CREATE_ALWAYS или OPEN_ALWAYS, вызов функции GetLastEiror возвращает сообщение об ошибке ERROR_ALREADY_EXISTS. Если файл до вызова функции CreateFile не существовал, вызов функции GetLastError возвращает значение 0. Если функция не достигает успеха, возвращаемое значение — INVALID_HANDLE_VALUE.

Включаемый файл

winbase.h

См. также

CIoseHandle, CreateFile, GetDiskFreeSpace, GetLastError, GetOverlappedResult, GetStdHandle, ReadFile, SetStdHandle, WriteFile

Пример

В следующем примере при запуске программы в результате обработки сообщения WM_CREATE открывается файл FILE.DAT, и в него записывается строка. Файл открывается для чтения/записи и остается открытым до завершения работы приложения. Когда пользователь выбирает пункт меню Test!, указатель файла устанавливается на начало файла с помощью функции SetFilePointer. Затем функция ReadFile считывает строку из файла. Если при чтении файла не было ошибок, программа отображает строку с помощью функции MessageBox.

См.    \local-sources\chapl7\17-05.txt

CreateFileMapping                      Windows 98   • Windows 2000

Описание

Функция CreateFileMapping создает именованный или неименованный объект отображения файла. Размер файла не должен превышать размера созданного в приложении объекта отображения файла, чтобы все содержимое файла было доступно для совместного использования. Если в приложении для объекта отображения файла указан размер, превышающий размер заданного файла на диске, файл на диске увеличивается в соответствии с указанным размером объекта отображения файла. В Windows 98 дескрипторы, которые применялись для создания объекта отображения файла, не должны использоваться в последующих вызовах файловых функций ввода/вывода, таких как ReadFile и WriteFile, до тех пор, пока отображение файла не будет закрыто.

Синтаксис

HANDLE CreateFileMapping( HANDLE hfile, LPSECURITY_ATTRIBUTES IpSecurityAttributes, DWORD dwProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCTSTR IpszMapName )

Параметры HFile

HANDLE. Дескриптор файла, на основе которого должен быть создан объект отображения файла. Файл должен быть открыт с режимом доступа,  совместимым с флажками зашиты,  которые указаны  параметром dwProtect. Рекомендуется открывать отображения файлов в приложении для монопольного доступа. Если этот параметр установлен равным OxFFFFFFFF, в параметрах dwMaximumSizeHigh и dwMaximumSizeLow должен быть также указан размер объекта отображения. Функция создает объект отображения файла указанного размера на основе системного файла подкачки, а не названного файла. Совместный доступ к объекту отображения файла может быть обеспечен как путем наследования или дублирования, так и путем указания того же имени.

IpSecurityAttributes

LPSECURITY_ATTRIBUTES. Указатель на структуру SECURITY_ATTRIBUTES, которая  указывает  атрибуты   зашиты  для объекта отображения. Если этот параметр установлен равным  NULL, объект отображения файла создается с дескриптором защиты, заданным по умолчанию, и результирующий дескриптор не наследуется.

dwProtect

DWORD. Защита страницы, необходимая для представления файла при его отображении. Этот параметр может иметь одно из значений, приведенных в табл. 17.9.

Таблица 17.9. Значения параметра защиты страницы dwProtect функции CreateFileMapping

Значение

Описание

PAGE_READONLY

Возможен доступ только для чтения к выделенной области страниц. Файл, указанный параметром /iF//e, должен быть создан с правами доступа GENERIC_READ.

PAGE_READWRITE

Возможен доступ для чтения/записи к выделенной области страниц. Файл, указанный параметром hFi/e, должен быть создан с правами доступа GENERIC_READ и GENERIC_WRITE.

PAGE_WRITECOPY

Возможно копирование и запись в выделенную область страниц. Файлы, указанные параметром flFffe, должны быть созданы с правами доступа GENERIC_READ и GENERIC_WRITE.

В приложении можно также указать некоторые атрибуты раздела, объединяя с помощью двоичного оператора OR (|) одно или несколько значений флажков атрибутов раздела, приведенных в табл. 17.10, с одним из значений флажка защиты страницы, приведенных в табл. 17.9.

Таблица 17. 10. Значения параметра атрибута раздела dwProtect функции CreateFileMapping

Значение

Описание

SEC_COMMIT

Выделять для всех страниц раздела физический объем в памяти или в файле подкачки на диске. Это — значение по умолчанию.

SEC_IMAGE

Файл, указанный параметром hFile, — выполняемый загрузочный модуль. Поскольку информация отображения и атрибуты защиты файла берутся из загрузочного модуля, при использовании этого значения не допустимы никакие иные атрибуты.

SEC_NOCACHE

Все страницы раздела должны быть установлены как некэшируемые. При установке этого значения должно быть также установлено значение SEC RESERVE или SEC COMMIT. Этот атрибут предназначен для аппаратных архитектур, требующих размещения в памяти различных блокирующих структур, которые никогда не загружаются в процессор. В компьютерах 80x86 и MIPS использование кэша для этих структур приводит только к снижению производительности, поскольку аппаратные средства должны поддерживать согласование кэшей. Некэшируемые данные требуются также для некоторых драйверов устройств, чтобы программы могли выполнять сквозную запись в физическую память.

SEC_RESERVE

Резервировать все страницы раздела без выделения физического объема памяти. Зарезервированные страницы нельзя использовать до их освобождения. Зарезервированные страницы можно только выделять в последующих вызовах функции VirtualAlloc. Этот атрибут допустим, только если параметр hFile имеет значение OxFFFFFFFF. dwMaximumSizeHighDWORD. Старшие 32 бита значения максимального размера объекта отображения файла. Для файлов с размером 4 Гбайт или менее этот параметр должен быть равен 0.                                                                                  

dwMudmumSizeLow DWORD. Младшие 32 бита значения максимального размера объекта отображения файла. Если этот параметр и параметр dwMaximumSizeHigh равны 0, максимальный размер объекта отображения файла равен текущему размеру файла, указанному параметром hFile.

IpszMapName

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую имя объекта отображения. Имя может содержать любой символ, за исключением символа обратного слэша (\). Если этот параметр установлен равным NULL, объект отображения создается без имени. Если этот параметр совпадает с именем существующего именованного объекта отображения, функция запрашивает доступ к объекту отображения с правами защиты, указанными параметром dwProtect.

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

HANDLE. В случае успешного выполнения — дескриптор объекта отображения файла; в ином случае — NULL. Если объект существовал до вызова функции GetLastError, она возвращает сообщение об ошибке ERROR_ALREADY_EXISTS действительный дескриптор существующего объекта отображения файла.

Включаемый файл

winbase. h

См. также

MapViewOfFile, MapViewOfFileEx, OpenFileMapping

Пример

См. пример для функции MapViewOfFile.

DeleteFile                                Windows 98   • Windows 2000

Описание

Функция DeleteFile удаляет существующий файл. Если приложение пытается удалить открытый или несуществующий файл, функция завершается неудачно. В Windows 2000 файл не может быть удален, если он открыт для ввода/вывода или операций отображения памяти. В Windows 98 файл всегда удаляется.

Синтаксис

BOOL DeleteFile( LPCTSTR IpszFileName )

Параметры

IpszFileName

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую имя файла, который должен быть удален.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

CloseHandle, CreateFile

Пример

См. пример для функции GetTempFileName.

DosDateTimeToFileTime                 * Windows 98   + Windows 2000

Описание

Функция DosDateTimeToFileTime преобразует значения даты и времени MS-DOS в 64-разрядную отметку времени.

Синтаксис

BOOL DosDateTimeToFileTime( WORD wDOSDate, WORD wDOSTime, LPFILETIME//»^)

Параметры wDOSDate

WORD. Дата MS-DOS. Дата представляет собой упакованное 16-разрядное значение в формате, описанном в табл. 17.11.

Таблица 17.11. Значения параметра wDOSDate функции DosDateTimeToFileTime

Биты

Содержи/мое

0-4

День месяца (1—31)

5-8

Месяц (1 — январь, 2 — февраль и т.д.)

9-15

Год с отсчетом от 1980 (для получения фактического значения года к этой величине необходимо прибавить 1980)

wDOSTime

WORD. Время MS-DOS. Время представляет собой упакованное 16-разрядное значение в формате, описанном в табл. 17.12.

Таблица 17.12. Значения параметра wDOSTime фикции DosDateTimeToFileTime

Биты

Солержимое

0-4

Секунды, деленные на 2

5-10

Минуты (0-59)

11-15

Часы (от 0 до 23 в 24-часовом формате)

LPFILETIME. Указатель на структуру FILETIME, которая принимает преобразованную 64-разрядную отметку времени. Определение структуры FILETIME приведено в описании функции CompareFileTime.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае -FALSE.

Включаемый файл

winbase.h

См. также

FileTimeToDosDateTime, FileTimeToSystemTime, SystemTimeToFileTime, CompareFileTime

Пример

В следующем примере, когда пользователь выбирает пункт меню Test!, открывается существующий файл FILE.DAT или создается новый, если он не существует. Затем с помощью функции SetFileTime дата создания файла устанавливается на 1 января 1995 года, а время устанавливается равным 00:00:00. В приложении для заполнения структуры FILETIME значением даты применяется функция DosDateTimeToFileTime. Перед установкой даты создания файла в приложении используется функция LocalFileTimeToFileTime для преобразования местного времени в универсальное скоординированное время UTC. Обратите внимание, что две структуры, применяемые для создания 16-разрядных упакованных значений даты и времени, DOSDATE и DOSTIME, совместимы с Visual C++ 2.x. Другие трансляторы могут не обеспечивать возможность определять двоичную структуру таким образом.

См.    \locaJ-sources\chapl7\17-06.txt

FileTimeToDosDateTime                 Windows 98   • Windows 2000

Описание

Функция FileTimeToDosDateTime преобразует 64-разрядную отметку времени в значения даты и времени MS-DOS.

Синтаксис

BOOL FileTimeToDosDateTime( CONST FILETIME* Ipft, LPWORD IpwDOSDate, LPWORD IpwDOSTime )

Параметры

Ipft

CONST FILETIME*. Указатель на,структуру FILETIME, содержащую 64-разрядную отметку времени, которая должна быть преобразована в формат даты и времени MS-DOS. Определение структуры FILETIME приведено в описании функции CompareFileTime.

IpwDOSDate

LPWORD. Указатель на переменную, которая принимает значение даты MS-DOS. Дата представляет собой упакованное 16-разрядное значение в формате, описанном в табл. 17.13.

Таблица 17. 13. Значения параметра IpwDOSDate функции FileTimeToDosDateTime

Виты

Содержимое

0-4

День месяца (1—31)

5-8

Месяц (1 — январь, 2 — февраль и т.д.)

9-15

Год с отсчетом от 1980 (для получения фактического значения года к этой величине необходимо прибавить 1980)

IpwDOSTime

LPWORD. Указатель на переменную, которая принимает значение времени MS-DOS. Время представляет собой упакованное 16-разрядное значение в формате, описанном в табл. 17.14.

Таблица 17. 14. Значения параметра IpwDOSTime функции FileTimeToDosDateTime

Виты

Солержимое

0-4

Секунды, деленные на 2

5-10

Минуты (0-59)

11-15

Часы (от 0 до 23 в 24-часовом формате)

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

DosDateTimeToFileTime, FileTimeToSystemTime, SystemTimeToFileTime, CompareFileTime

Пример

См. пример для функции FileTimeToLocalFileTime.

FileTimeToLocalFileTime                 * Windows 98   + Windows 2000

Описание

Функция FileTimeToLocalFileTime преобразует отметку времени, представленную в универсальном скоординированном времени UTC (Universal Coordinated Time), в отметку по местному времени.

Синтаксис

BOOL FileTimeToLocalFileTime( CONST FILETIME* Ipft, LPFILETIME IpftLocal)

Параметры

Ipft

CONST FILETIME*. Указатель на структуру FILETIME, которая содержит отметку времени, представленную в универсальном скоординированном времени. Это время должно быть преобразовано в местное. Определение структуры FILETIME приведено в описании функции CompareFileTime.

IpftLocal

LPFILETIME. Указатель на структуру FILETIME, которая принимает значение преобразованной отметки местного времени. Этот параметр не должен быть равен параметру Ipft. Определение структуры FILETIME приведено в описании функции CompareFileTime.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае, возвращаемое значение — FALSE.

Включаемый файл

winbase.h

См. также

LocalFileTimeToFileTime, CompareFileTime

Пример

В следующем примере, когда пользователь выбирает пункт меню Test!, открывается (или создается, если он не существует) файл FILE.DAT, и в клиентской области окна отображается дата и время создания файла. Отметка времени определяется с помощью функции GetFileTime и преобразуется в местное время функцией FileTimeToLocalFileTime. Местное время преобразуется в значения даты и времени в формате DOS. Время UTC преобразуется в системные значения даты и времени и отображается. Обратите внимание, что две структуры, применяемые для создания 16-разрядных упакованных значений даты и времени, DOSDATE и DOSTIME, совместимы с Visual C++. Другие трансляторы могут не обеспечивать возможность определять двоичную структуру таким образом.

См.    \local-sources\chapl7\17-07. txt

FileTimeToSystemTime                  4 Windows 98   + Windows 2000

Описание

Функция FileTimeToSystemTime преобразует 64-разрядную отметку времени в системный формат времени.

Синтаксис

BOOL FiIeTimeToSystemTime( CONST FILETIME* Ipft, LPSYSTEMTIMEIpst)

Параметры

Ipft

CONST FILETIME*. Указатель на структуру FILETIME, содержащую отметку времени, которая должна быть преобразована в системный формат даты и времени. Определение структуры FILETIME приведено в описании функции CompareFileTime.

Ipst

LPSYSTEMTIME. Указатель на структуру SYSTEMTIME, которая принимает преобразованную отметку времени. Определение структуры SYSTEMTIME приведено ниже.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

DosDatcTimeToFileTime, FileTimeToDosDateTime, SystemTimeToFileTime, CompareFileTime

Определение SYSTEMTIMEtypedef struct    SYSTEMTIME {

WORD wYear;

WORD «Month;

WORD wDayOfWeek;

WORD wDay ;

WORD wHour;

WORD «Minute;

WORD wSecond;

WORD «Millisecond», }   SYSTEMTIME ;

Члены

wYear

WORD. Текущий год.

wMonth

WORD. Текущий месяц; 1 — январь, 2 — февраль и т.д.

wDayOJWeek

WORD. Текущий день недели; 0 — воскресенье, 1 — понедельник и т.д.

wDay

WORD. Текущий день месяца.

wHour

WORD. Текущий час.

w Minute

WORD. Текущая минута.

wSecond

WORD. Текущая секунда.

wMilliseconds

WORD. Текущая миллисекунда.

Пример

См. пример для функции FileTimeToLocalFileTime.

FindClose                                Windows 98   • Windows 2000

Описание

Функция FindClose закрывает дескриптор поиска, который был ранее создан с помощью функции FindFirstFile и применялся в функции FindNextFile. В функциях FindFirstFile и FindNextFile дескриптор поиска служит для поиска файлов с именами, соответствующими искомому имени. После вызова в приложении функции FindClose дескриптор поиска нельзя использовать в последующих вызовах функции FindNextFile или FindClose.

Синтаксис

BOOL FindClose( HANDLE hFindFile )

Параметры

hFindFile

HANDLE. Дескриптор поиска, который должен быть закрыт. Этот дескриптор должен быть перед этим открыт функцией FindFirstFile.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

FindFirstFile, FindNextFile

Пример

См. пример для функции FindFirstChangeNotification.

FindCloseChangeNotification            •  Windows 98   • Windows 2000

Описание

Функция FindCloseChangeNotification прекращает отслеживание извещений об изменениях для заданного дескриптора. После вызова этой функции дескриптор контроля изменений нельзя использовать в последующих вызовах функции FindNextChangeNotification или FindCloseChangeNotification.

Синтаксис

BOOL FindCloseChangeNotification( HANDLE hChange )

Параметры

hChange

HANDLE. Дескриптор контроля изменений, созданный в предыдущем вызове функции FindFirstChangeNotification.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

winbase.h

См. также

FindFirstChangeNotification, FindNextChangeNotification, WaitForMultipleObjects, WaitForSingleObject

Пример

См. пример для функции FindFirstChangeNotification.

FindFirstChangeNotification             •  Windows 98   • Windows 2000

Описание

Функция FindFirstChangeNotification создает дескриптор контроля изменений и устанавливает начальные условия фильтрации извещений об изменениях. Состояние ожидания, установленное для дескриптора контроля изменений, прерывается, когда в заданном каталоге или поддереве происходит изменение, соответствующее условиям фильтрации извещений. Состояние заданного каталога или поддерева контролируют функции WaitForSingleObject и WaitForMultipleObjects с использованием дескриптора, возвращаемого этой функцией.

Синтаксис

HANDLE FindFirstChangeNotification( LPCTSTR IpszPath, BOOL bWatchSubTree, DWORD dwFilter )

Параметры

IpszPath

LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую путь к каталогу, изменения в котором необходимо контролировать.

bWatchSubTree

BOOL. Если этот параметр установлен равным TRUE, функция контролирует дерево каталогов, имеющее в качестве корня каталог, указанный параметром IpszPath. Если этот параметр установлен равным FALSE, функция контролирует только указанный каталог.

dwfilter

DWORD. Условия фильтрации, которые удовлетворяют требованиям контроля изменений. Этот параметр может иметь одно или несколько значений, приведенных в табл. 17.15, объединенных с помощью двоичного оператора OR (|).

Таблица 17.15. Значения параметра dwFilter функции FindFirstChangeNotification

Значение

Описание

FILE_NOTIFY_CHANGE_ATTRIBUTES

Сообщать о любых изменениях атрибутов в контролируемом каталоге или поддереве.

FILE_NOTIFY_CHANGE_DIR_NAME

Сообщать о любом изменении имени, создании или удалении подкаталога в контролируемом каталоге или поддереве.

FILE_NOTIFY_CHANGE_FILE_NAME

Сообщать о любом изменения имени, создании или удалении файла в контролируемом каталоге или поддереве.

FILE_NOTIFY_CHANGE_LAST_WRITE

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

FILE_NOTIFY_CHANGE_SECURITY

Сообщать о любом изменения дескриптора защиты в контролируемом каталоге или поддереве.

FILE_NOTIFY_CHANGE_SIZE

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

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

HANDLE. В случае успешного выполнения — дескриптор обнаруженного объекта контроля изменений; в ином случае — INVALID_HANDLE_VALUE

Включаемый файл

winbase.h

См. также

FindCloseChangeNotification, FindNextChangeNotification, WaitForMultipleObjects, WaitForSingleObject

Пример

В следующем примере (рис. 17.1) отображается каталог D:\TEMP и контролируется для обнаружения любых изменений. При добавлении новых файлов, изменении размера или отметки времени, или при удалении файла в окне появляется новое содержимое каталога. После запуска приложения функция FindFirstChangeNotification начинает контролировать изменения и создает нить для обработки извещений. При получении извещения об изменении окно обновляется. В приложении для поиска файлов в каталоге   используются   функции FindFirstFlle, FindNextFiIe и FlndClose.