Рисунок 17.4а. Структура каталога перед выполнением функции ЛЛэУвГПеРисунок 17.4Ь. Структура каталога послевыполнения функций Movefile
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
CopyFile, GetLastError |
|||||||||||||||||||
Пример |
В следующем примере показано, как использовать функцию MoveFile для перемещения папок (каталогов). Структура каталога вначале установлена так, как показано на рис. 17.4(а). Когда пользователь выбирает пункт меню Test!, папка "Folded " перемещается под папку "Folder2", как показано на рис. 17.4(Ь). |
|||||||||||||||||||
LRESULT CALLBACK WndProc ( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM IParam ) { switch ( uMsg ) case WM_COMMAND : switch ( LOWORD( wParam ) ) { -case IDM TEST : MoveFile ("E: \\Book\\A Folder \\Folderl" , "E:\\Book\\A Folder \\Folder2 \\Folderl" ) ; break; |
||||||||||||||||||||
MoveFileEx • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция MoveFileEx аналогична MoveFile, за исключением того, что позволяет применить дополнительные опции перемещения, например отложить перемещение до перезагрузки компьютера. Функция MoveFileEx позволяет также удалять файлы, используемые системой, при перезагрузке компьютера. |
|||||||||||||||||||
Синтаксис |
BOOL MoveFileEx( LPCTSTR IpExistingFileName, LPCTSTR IpNewFileName, DWORD dw Flags ) |
|||||||||||||||||||
Параметры IpExistingFileName |
||||||||||||||||||||
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую имя существующего файла или каталога, который должен быть перемещен или переименован. |
||||||||||||||||||||
IpNewFileName |
LPCTSTR. Указатель на строку с нулевым символом в конце, которая указывает новое имя для параметра IpExistingFileName. Файл может перемещаться в другую файловую систему или на другой диск. Каталог может перемещаться только в пределах одного диска. В Windows 2000, если параметр dwFlags содержит значение MOVEFILE_DELAY_UNTIL_REBOOT, параметр IpNewFileName может быть равен NULL. В этом случае функция MoveFileEx регистрирует файл IpExistingFileName для удаления после перезагрузки системы. |
|||||||||||||||||||
dwFlags |
DWORD. Указывает способ перемещения файла. Этот параметр может представлять собой комбинацию значений, перечисленных в табл. 17.23. |
|||||||||||||||||||
Таблица 17.23. Значения параметра dwFlags функции MoveFileEx |
||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||
MOVEFILE_COPY_ALLOWED |
Если файл должен быть перемещен на другой том, функция моделирует перемещение с использованием функций CopyFile и DeleteFile. Этот флажок нельзя объединять с флажком MOVEFILE_DELAY_UNTIL_REBOOT . |
|||||||||||||||||||
MOVEFILE_DELAY_UNTIL_REBOOT |
Файл фактически не перемещается до перезагрузки операционной системы. Система перемещает файл сразу после выполнения команды AUTOCHK, но до создания каких-либо файлов подкачки. |
|||||||||||||||||||
MOVEFILE_REPLACE_EXISTING |
Если файл с именем, указанным параметром /pNewFi/eName, уже существует, функция заменяет его файлом, указанным параметром /pEx/sf/ngFi/eName. |
|||||||||||||||||||
MOVEFILE_WRITE_THROUGH |
Функция не выполняет возврат до тех пор, пока файл не будет фактически перемещен на диске. Это позволяет выводить на диск результаты перемещения, выполняемого как копирование и удаление, до возврата из функции. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
MoveFile |
|||||||||||||||||||
Пример |
В следующем примере показано, как использовать функцию MoveFileEx для перемещения файла с одного устройства на другое. |
|||||||||||||||||||
LRESULT CALLBACK WndProc { HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM IParam ) { switch ( uMsg ) { case ИМ COMMAND : switch (LOWORD( wParam ) ) { case IDM_TEST : |
||||||||||||||||||||
MoveFileEx("E: \\Book\\Chapterl .doc" , "D: \\Temp \\Chapterl .doc" , MOVEFILE_COPY_ALLOWED | MOVEFILE_WRITE_THROOGH ) ; break ; |
||||||||||||||||||||
OpenFileMapping • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция OpenFileMapping открывает именованный объект отображения файла. В приложении можно использовать полученный дескриптор в любой функции, для которой требуется дескриптор объекта отображения файла. |
|||||||||||||||||||
Синтаксис |
HANDLE OpenFiIeMapping( DWORD dwDesiredAccess, BOOL blnheritHandle, LPCTSTR IpName ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
dwDesiredAccess |
DWORD. Тип доступа к объекту отображения файла. Этот параметр может иметь одно из значений, приведенных в табл. 17.24; он проверяется по всем дескрипторам защиты целевого объекта отображения файла. |
|||||||||||||||||||
Таблица 17.24. Значения параметра dwDesiredAccess функции OpenFileMapping |
||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||
FtE_MAP_ALL_ACCESS |
To же, что и FILE_MAP_WRITE. |
|||||||||||||||||||
FILE_MAP_COPY |
Доступ для копирования после записи. Файл назначения, отображающий объект, должен быть создан с правами защиты PAGE WRITECOPY. |
|||||||||||||||||||
FILE_MAP_READ |
Доступ только для чтения. Файл назначения, отображающий объект, должен быть создан с правами защиты PAGE READWRITE или PAGE READ. |
|||||||||||||||||||
FILE_MAP_WRITE |
Доступ для чтения/записи. Файл назначения, отображающий объект, должен быть создан с правами защиты PAGE_READ WRITE. |
|||||||||||||||||||
blnheritHandle |
BOOL. Определяет, должен ли возвращенный дескриптор быть унаследован новым процессом при его создании. Устанавливается равным TRUE для указания того, что новый процесс наследует дескриптор. |
|||||||||||||||||||
IpName |
LPCTSTR. Указатель на строку, содержащую имя объекта отображения файла, который должен быть открыт. |
|||||||||||||||||||
Возвращаемое значение |
HANDLE. В случае успешного выполнения — открытый дескриптор указанного объекта отображения файла; в ином случае — NULL. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
MapViewOfFile |
|||||||||||||||||||
Пример |
См. пример для функции MapViewOfFile. |
|||||||||||||||||||
ReadFile • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция ReadFile считывает данные из файла, начиная с позиции, обозначенной указателем файла. После считывания данных указатель файла сдвигается на число считанных байтов, при условии, что дескриптор файла не был создан с атрибутом перекрывающегося ввода/вывода. Если дескриптор файла был создан для перекрывающегося ввода/вывода, приложение должно с помощью функции SetFilePointer корректировать положение указателя файла после считывания. |
|||||||||||||||||||
Синтаксис |
BOOL ReadFile( HANDLE hFile, LPVOID IpBuffer, DWORD dwNumberOfBytesToRead, LPDWORD IpdwNumberOfBytesRead, LPOVERLAPPED IpOverlapped) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
hFile |
HANDLE. Считываемый файл. Дескриптор файла должен быть создан с правами доступа к файлу GENERIC_READ. |
|||||||||||||||||||
IpBuffer |
LPVOID. Указатель на буфер, который принимает данные, считанные из файла. |
|||||||||||||||||||
dwNumberOfBytesToRead |
||||||||||||||||||||
DWORD. Число байтов, которое должно быть считано из файла. |
||||||||||||||||||||
IpdwNumberOfBytesRead |
||||||||||||||||||||
LPDWORD. Указатель на переменную DWORD, которая принимает число считанных байтов. Функция ReadFile устанавливает это значение равным 0 перед выполнением любых действий или перед проверкой наличия ошибок. Если этот параметр равен 0, когда функция ReadFile возвратила значение TRUE после чтения данных из именованного канала, это значит, что на другом конце канала, работающего в режиме передачи сообщений, функция WriteFile была вызвана с параметром dwNumberOfBytesToWrite, установленным равным 0. |
||||||||||||||||||||
IpOverlapped |
LPOVERLAPPED. Указатель на структуру OVERLAPPED. Эта структура требуется, если файл, обозначенный дескриптором hFile, был создан с флажком FILE_FLAG_OVERLAPPED. Определение структуры OVERLAPPED приведено ниже. Если дескриптор hFile был создан с флажком FILE_FLAG_OVERLAPPED и параметр IpOverlapped отличен от NULL, чтение начинается со смешения, указанного в структуре OVERLAPPED, и функция ReadFile может выполнить возврат прежде, чем закончится операция чтения. В этом случае функция ReadFile возвращает значение FALSE, а функция GetLastError возвращает значение ERROR_IO_PENDING. Вызывающий процесс может продолжать выполнение, пока заканчивается чтение. Событие, указанное в структуре OVERLAPPED, после завершения операции чтения устанавливается в сигнальное состояние. Если дескриптор hFile не был создан с флажком FILE_FLAG_OVERLAPPED и параметр IpOverlapped отличен от NULL, операция чтения начинается со смещения, указанного в структуре OVERLAPPED. Функция ReadFile не выполняет возврат до тех пор, пока чтение не будет закончено. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
CreateFile, GetLastError, GetOverLappedResult, ReadFileEx, WriteFile |
|||||||||||||||||||
Определение OVERLAPPED |
||||||||||||||||||||
typedef struct OVERLAPPED { ULONG_PTR Internal ; ULONG_PTR InternalHigh; DWORD Offset; DWORD OffsetHigh; HANDLE hEvent; } OVERLAPPED; |
||||||||||||||||||||
Члены |
||||||||||||||||||||
Internal . |
ULONG_PTR. Зарезервирован для использования в операционной системе. |
|||||||||||||||||||
InternalHigh |
ULONG_PTR. Зарезервирован для использования в операционной системе. |
|||||||||||||||||||
Offset |
DWORD. Младшие 32 бита позиции файла, с которой должно начаться чтение. Вызывающий процесс устанавливает значение этого члена перед вызовом функции ReadFile или WriteFile. Этот член должен быть установлен равным 0 при чтении из именованных каналов и устройств связи или записи в них. |
|||||||||||||||||||
OffsetHigh |
DWORD. Старшие 32 бита позиции файла, с которой должно начаться чтение. Этот член должен быть установлен равным 0 при чтении из именованных каналов и устройств связи или записи в них. |
|||||||||||||||||||
hEvent |
HANDLE. Дескриптор события, которое должно быть установлено в сигнальное состояние после окончания передачи информации. Вызывающий процесс устанавливает этот член перед вызовом функции ReadFile, WriteFile, ConnectNamedPipe или TransactNamedPipe. |
|||||||||||||||||||
Пример |
См. пример для функции WriteFile. |
|||||||||||||||||||
ReadFileEx • Windows 98 • Windows 2000 " |
||||||||||||||||||||
Описание |
Функция ReadFileEx обеспечивает асинхронное чтение данных из файла. Она предназначена исключительно для асинхронных операций. Если для приложения требуется синхронное чтение, следует применять функцию ReadFile, которая предназначена и для синхронных, и для асинхронных операций. Асинхронное чтение позволяет выполнять в приложении другую обработку во время чтения из файла. После завершения чтения вызывается заданная функция обратного вызова. |
|||||||||||||||||||
Синтаксис |
BOOL ReadFileEx( HANDLE hFile, LPVOID IpBuffer, DWORD dwNumberOfBytesToRead, LPOVERLAPPED IpOverlapped, LPOVERIAPPED_COMPLETION_ROUTINE Ip Completion Routine ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
hFile |
HANDLE. Открытый дескриптор файла, в котором выполняется чтение. Дескриптор файла создается с флажком FILE_FLAG_OVERLAPPED и должен предусматривать права доступа к файлу GENERIC_READ. В Windows 2000 в качестве этого параметра может применяться любой дескриптор, открытый с флажком FILE_FLAG_OVERLAPPED функцией CreateFile, или дескриптор сокета, возвращенный функциями socket или accept. В Windows 98 в качестве этого параметра может применяться ресурс связи, почтовый слот, дескриптор именованного канала, открытый функцией CreateFile с флажком FILE_FLAG_OVERLAPPED, или дескриптор сокета. Система Windows 98 не поддерживает асинхронные операции с файлами на диске. |
|||||||||||||||||||
IpBuffer |
LPVOID. Указатель на буфер, который принимает данные, считанные из файла. Этот буфер должен остаться действительным на протяжении всей операции чтения, и приложение не должно его использовать, пока чтение не будет закончено. |
|||||||||||||||||||
dwNumberOfBytesToRead |
||||||||||||||||||||
DWORD. Число байтов, которые должны быть считаны из файла. |
||||||||||||||||||||
IpOverlapped |
LPOVERLAPPED. Указатель на структуру OVERLAPPED, содержащую данные, которые должны использоваться при асинхронном чтении из файла. Определение структуры OVERLAPPED приведено в описании функции ReadFile. |
|||||||||||||||||||
IpCompletionRoutine |
||||||||||||||||||||
LPOVERLAPPED_COMPLETION_ROUTINE. Указатель на функцию обратного вызова, которая вызывается, когда чтение заканчивается и вызывающая нить находится в состоянии ожидания, допускающем получение сообщений. Определение функции обратного вызова приведено ниже. |
||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
WriteFileEx, ReadFile |
|||||||||||||||||||
Синтаксис обратного вызова |
||||||||||||||||||||
VOID WINAPI FileIOCompletionRoutine( DWORD dwErrorCode, |
||||||||||||||||||||
DWORD dwNumberOfBytesTransferred, LPOVERLAPPED IpOverlapped ) |
||||||||||||||||||||
Параметры обратного вызова |
||||||||||||||||||||
dwErrorCode |
DWORD. Состояние завершения ввода/вывода. Если этот параметр установлен равным 0, операция ввода/вывода была выполнена успешно. Если он равен ERROR_HANDLE_EOF, имела место попытка чтения после достижения конца файла. |
|||||||||||||||||||
dwNumberOfBytesTransferred |
||||||||||||||||||||
DWORD. Число переданных байтов. В случае ошибки этот параметр равен 0. |
||||||||||||||||||||
IpOverlapped |
LPOVERLAPPED. Указатель на структуру OVERLAPPED, переданную в качестве параметра функции асинхронного ввода/вывода. Член hEvent не используется системой Windows, поэтому в вызывающем приложении этот член можно использовать для передачи информации процедуре завершения. После обращения к функции обратного вызова структура OVERLAPPED больше не нужна. Функция обратного вызова может освободить память, занимаемую этой структурой. |
|||||||||||||||||||
RemoveDirectory * Windows 98 + Windows 2000 |
||||||||||||||||||||
Описание |
Функция RemoveDirectory удаляет указанный пустой каталог. |
|||||||||||||||||||
Синтаксис |
BOOL RemoveDirectory( LPCTSTR IpszDir ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
IpszDir |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую путь доступа к удаляемому каталогу. Каталог должен быть пуст, а процесс, вызывающий функцию, должен предоставить права доступа к каталогу, допускающие его удаление. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
CreateDirectory |
|||||||||||||||||||
Пример |
В следующем примере удаляется каталог "Child Folder", когда пользователь выбирает пункт меню Test!. |
|||||||||||||||||||
LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM 1Par am ) { switch ( uMsg ) { case WM_COMMAND: switch ( LOWORD( wParam ) ) { case IDM TEST : RemoveDirectory ( "E: \\Book\\A FolderN \Folder2\\Folderl\\Child Folder"); break; |
||||||||||||||||||||
SearchPath • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция SearchPath выполняет поиск указанного файла в заданном пути или поиск с учетом следующего порядка поиска: Каталог, из которого было загружено приложение Текущий каталог Системный каталог Windows Каталог Windows Каталоги, перечисленные в системной переменной PATH |
|||||||||||||||||||
Синтаксис |
DWORD SearchPath( LPCTSTR IpszPath, LPCTSTR IpszFile, LPCTStR IpszExtension, DWORD dwReturnBuffer, LPTSTR IpszReturnBuffer, LPTSTR* plpszHlePart ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
IpszPatk |
LPCTSTR Указатель на строку с нулевым символом в конце, которая содержит путь доступа, применяемый для поиска файла. Если этот параметр установлен равным NULL, функция выполняет поиск по каталогам в порядке, описанном выше. |
|||||||||||||||||||
Ipszfile |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую имя искомого файла. |
|||||||||||||||||||
IpszExtaHen |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую расширение, которое должно быть добавлено к имени файла при поиске. Первым символом расширения имени файла должна быть точка (.). Расширение будет добавлено только в том случае, если указанное имя файла не заканчивается расширением. Если расширение имени файла не требуется или расширение содержится в имени файла, этот параметр может быть равен NULL. |
|||||||||||||||||||
dwRelurnBuffer |
DWORD. Длина в байтах (ANSI) или символах (Unicode) буфера, который принимает допустимое значение пути доступа и имени файла. |
|||||||||||||||||||
IpszReturnBuffer |
LPTSTR Указатель на буфер для записи найденного допустимого значения пути доступа и имени файла. |
|||||||||||||||||||
plpszfilePart |
LPTSTR*. Указатель на переменную, которая принимает адрес (внутри буфера IpszReturnBuffer) последнего компонента допустимого значения пути доступа и имени файла. Этим адресом является адрес символа, который непосредственно следует за последним обратным слэшем (\), в буфере, содержащем значение пути доступа. |
|||||||||||||||||||
Возвращаемое значение |
DWORD. В случае успешного выполнения, длина в байтах (ANSI) или символах (Unicode) строки, скопированной в буфер. Эта длина не включает завершающий нулевой символ. Если возвращаемое значение больше, чем указано параметром dwReturnBuffer, функция возвращает размер (в байтах или символах) буфера, необходимого для записи значения пути доступа. Если функция терпит неудачу, возвращаемое значение — 0. |
|||||||||||||||||||
Включаемый файл |
winbasc.h |
|||||||||||||||||||
См. также |
FindFirstFile, FindNextFile |
|||||||||||||||||||
Пример |
В следующем примере показано, как использовать функцию SearchPath для поиска файла CALC.EXE. Если файл найден, путь к нему отображается в окне сообщения. |
|||||||||||||||||||
См. \local-sources\chapl7\17-19. txt |
||||||||||||||||||||
SetEndOfFile • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция SetEndOfFile перемещает позицию конца файла (EOF — end-of-file) для указанного файла в текущую позицию указателя файла. |
|||||||||||||||||||
Синтаксис |
BOOL SetEndOfFile( HANDLE hFile ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
hfile |
HANDLE. Дескриптор файла, в котором необходимо переместить позицию конца файла EOF. Дескриптор файла должен быть создан с правами доступа к файлу GENERIC_WRITE. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
CreateFile |
|||||||||||||||||||
Пример |
См. пример для функции WriteFile. |
|||||||||||||||||||
SetFileApisToANSI • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция SetFileApisToANSI вынуждает набор файловых функций Win32 использовать кодовую страницу набора символов ANSI. Эта функция применяется для 8-разрядных операций ввода и вывода на консоль. Список функций, на которые воздействует данная функция, приведен в описании функции AreFileApisANSI ранее в этой главе. |
|||||||||||||||||||
Синтаксис |
VOID SetFileApisToANSI( VOID ) |
|||||||||||||||||||
Параметры |
Эта функция не имеет параметров. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
SetFileApisToOEM, AreFileApisANSI |
|||||||||||||||||||
Пример |
См. пример для функции AreFileApisANSI |
|||||||||||||||||||
SetFileApisToOEM • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция SetFileApisToOEM вынуждает набор файловых функций Win32 использовать кодовую страницу набора символов OEM. Эта функция применяется для 8-разрядных операций ввода и вывода на консоль. Список функций, на которые воздействует данная функция, приведен в описании функции AreFileApisANSI ранее в этой главе. |
|||||||||||||||||||
Синтаксис |
VOID SetFileApisToOEM( VOID ) |
|||||||||||||||||||
Параметры |
Эта функция не имеет параметров. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
SetFileApisToANSI, AreFileApisANSI |
|||||||||||||||||||
Пример |
См. пример для функции AreFileApisANSI. |
|||||||||||||||||||
SetFileAttributes • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция SetFileAttributes устанавливает атрибуты файла. |
|||||||||||||||||||
Синтаксис |
BOOL SetFileAttributes( LPCTSTR IpFileName, DWORD dwFileAttributes ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
IpfileName |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую путь доступа к файлу, для которого должны быть установлены атрибуты. Длина строки не должна превышать МАХ_РАТН символов. В приложении Windows 2000 можно обойти это ограничение, вызвав широкую (W) версию функции SetFileAttributes и поместив в начале строки символы "\\?\" или "\\7\UNC\" для отмены интерпретации пути доступа. |
|||||||||||||||||||
dwFikAttribHtes |
DWORD. Атрибуты, которые должны быть установлены для файла. Этот параметр может представлять собой комбинацию значений, приведенных в табл. 17.25, которые объединены с помощью двоичного оператора OR (|). Однако другие атрибуты отменяют значение FILE_ATTRIBUTE_NORMAL |
|||||||||||||||||||
Таблица 17.25. Значения параметра dwFileAttributes функции SetFileAttributes |
||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||
FILE_ATTRIBUTE_ARCHIVE |
Файл является архивным. |
|||||||||||||||||||
FILE_ATTRIBUTE_DIRECTORY |
Файл представляет собой каталог. |
|||||||||||||||||||
FILE_ATTRIBUTE_HIDDEN |
Файл является скрытым. |
|||||||||||||||||||
FILE_ATTRIBUTE_NORMAL |
Файл не имеет других атрибутов. Это значение допустимо, только если используется отдельно. |
|||||||||||||||||||
FILE_ATTRIBUTE_NOT_CONTENTJNDEXED |
Файл не должен быть проиндексирован службой индексации информационного наполнения. |
|||||||||||||||||||
FILE_ATTRIBUTE_OFFLINE |
Данные файла не являются непосредственно доступными. Этот атрибут указывает, что данные файла физически перемещены на автономное запоминающее устройство. |
|||||||||||||||||||
FILE_ATTRIBUTE_READONLY |
Файл предназначен только для чтения. |
|||||||||||||||||||
FILE_ATTRIBUTE_SYSTEM |
Файл является частью операционной системы или используется ею монопольно. |
|||||||||||||||||||
FILE_ATTRIBUTE_TEMPORARY |
Файл используется для временного хранения данных. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
GetFileAttributes |
|||||||||||||||||||
Пример |
В следующем примере показано, как проверить, установлен ли для файла FILE.DAT атрибут FILE_ATTRIBUTE_READONLY. Если - да, атрибуты очищаются с помощью функции SetFileAttributes перед удалением файла. |
|||||||||||||||||||
См. \local-sources\chapl7\17-20. txt |
||||||||||||||||||||
SetFilePointer + Windows 98 * Windows 2000 |
||||||||||||||||||||
Описание |
Функция SetFilePointer перемешает указатель открытого файла. Указатель файла определяет, с какого места в этом файле должно начаться выполнение следующей операций чтения или записи. При работе в многоните-вых приложениях во время установки указателя файла необходимо соблюдать осторожность. Если нити совместно используют один и тот же дескриптор файла и обновляют указатель файла, последовательность выполняемых действий должна строиться с использованием объекта защиты критической секции или объекта типа взаимно исключающей блокировки. |
|||||||||||||||||||
Синтаксис |
DWORD SetFilePointer( HANDLE hFile, LONG IDistanceToMove, PLONG IpDistanceToMoveHigh, DWORD dwMoveMethod ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
hFile |
HANDLE. Дескриптор файла, в котором должен быть перемещен указатель. Дескриптор файла должен быть создан с правами доступа к файлу GENERIC_READ или GENERIC_WRITE. |
|||||||||||||||||||
IDistonceToMove |
LONG. Число байтов, на которое должен быть перемещен указатель файла. При положительном значении указатель перемещается в файле в прямом направлении, а при отрицательном — в обратном. |
|||||||||||||||||||
IpDistanceToMoveHigh |
||||||||||||||||||||
PLONG. Указатель на старшие 32 бита 64-разрядного значения расстояния, на которое должно быть выполнено перемещение. Если значение этого параметра равно NULL, функция может применяться только с файлами, которые имеют максимальный размер 23' — 2. Если этот параметр указан, максимальный размер файла может составлять 2м — 2. Этот параметр принимает также старшее слово нового значения указателя файла. |
||||||||||||||||||||
dwMoveMethod |
DWORD. Отправная точка для перемещения указателя файла. Этот параметр может иметь одно из значений, приведенных в табл. 17.26. |
|||||||||||||||||||
Таблица 17.26. Значения параметра dwMoveMethod функции SetFilePointer |
||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||
FILE_BEGIN |
Отправная точка — 0, или начало файла. |
|||||||||||||||||||
FILE_CURRENT |
Отправная точка — текущее значение указателя файла. |
|||||||||||||||||||
FILE_END |
Отправная точка — текущая позиция конца файла. |
|||||||||||||||||||
Возвращаемое значение |
DWORD. В случае успешного выполнения — младшие 32 бита нового указателя файла; если параметр IpDistanceToMoveHigh отличен от NULL;*; он принимает старшие 32 бита значения нового указателя файла.Если функция не достигает успеха и параметр IpDistanceToMoveHigh равен NULL, возвращаемое значение — OxFFFFFFFF. Если функция He-достигает успеха и параметр IpDistanceToMoveHigh отличен от NULL, возвращаемое значение — OxFFFFFFFF, а функция GetLastError возвращает значение, отличное от NO_ERROR. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
GetLastError, ReadFile, ReadFileEx, WriteFile, WriteFUeEx |
|||||||||||||||||||
Пример |
См. пример для функции LockFile. |
|||||||||||||||||||
SetFileTime • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция SetFileTime устанавливает дату и время создания, последнего обращения или последнего изменения файла. |
|||||||||||||||||||
Синтаксис |
BOOL SetFileTime( HANDLE hFile, CONST FILETIME* IpftCreation, CONST FILETIME* IpftLasi 'Access, CONST FILETIME* IpftLastWrite ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
hfile |
HANDLE. Дескриптор файла, для которого должны быть установлены значения даты и времени. Дескриптор файла должен быть создан с правами доступа к файлу GENERIC_WRITE. |
|||||||||||||||||||
IpftCreation |
CONST FILETIME*. Указатель на структуру FILETIME, которая содержит дату и время создания файла. Этот параметр может быть равен NULL, если приложение не должно устанавливать эти атрибуты. Определение структуры FILETIME приведено в описании функции Compare FileTime. |
|||||||||||||||||||
Ipft Last Access |
CONST FILETIME*. Указатель на структуру FILETIME, которая содержит дату и время последнего доступа к файлу. Этот параметр может быть равен NULL, если приложение не должно устанавливать эти атрибуты. Определение структуры FILETIME приведено в описании функции Compare FileTime . |
|||||||||||||||||||
IpftLastWrite |
CONST FILETIME*. Указатель на структуру FILETIME, которая содержит дату и время последней записи в файл. Этот параметр может быть равен NULL, если в приложении не требуется устанавливать эти атрибуты. Определение структуры FILETIME приведено в описании функции CompareFileTime. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
GetFileSize, GetFileTime, GetFileType |
|||||||||||||||||||
Пример |
В следующем примере показано, как использовать функцию SetFileTime для изменения отметки даты и времени. В этом примере для преобразования из формата структуры даты и времени SYSTEM в формат даты и времени FILETIME применяется функция SystemTimeToFileTime. Время преобразуется из местного времени во время UTC, поскольку функция SetFileTime предназначена для работы со значениями времени, которые определяются относительно времени UTC. |
|||||||||||||||||||
См. \local-sources\chapl7\17-21.txt |
||||||||||||||||||||
SetStdHandle + Windows 98 * Windows 2000 |
||||||||||||||||||||
Описание |
Функция SetStdHandle устанавливает дескриптор стандартного устройства ввода информации, вывода информации или вывода сообщений об ошибках. |
|||||||||||||||||||
Синтаксис |
BOOL SetStdHandle( DWORD dwStdHandle, HANDLE hHandle ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
dwStdHandle |
DWORD. Дескриптор, который должен быть установлен. Этот параметр может иметь одно из значений, перечисленных в табл. 17.27. |
|||||||||||||||||||
Таблица 17.27. Значения параметра dwStdHandle функции SetStdHandle |
||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||
STD_INPUT_HANDLE |
Дескриптор стандартного устройства ввода информации |
|||||||||||||||||||
STD_OUTPUT_HANDLE |
Дескриптор стандартного устройства вывода информации |
|||||||||||||||||||
STD ERROR HANDLE |
Дескриптор стандартного устройства вывода сообщений об ошибках |
|||||||||||||||||||
hHandle |
HANDLE. Дескриптор, который должен храниться как дескриптор стандартного устройства ввода информации, вывода информации или вывода сообщений об ошибках. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
GetStdHandle |
|||||||||||||||||||
Пример |
В следующем примере в качестве стандартного файла вывода сообщений об ошибках устанавливается файл ERROR.LOG, а затем этот стандартный файл используется для вывода сообщений об ошибках, когда пользователь выбирает пункт меню Test!. |
|||||||||||||||||||
См. \local-sources\chapl7\17-22. txt |
||||||||||||||||||||
SystemTimeToFileTime «• Windows 98 «• Windows 2000 |
||||||||||||||||||||
Описание |
Функция SystemTimeToFileTime преобразует значение системного времени в отметку времени. |
|||||||||||||||||||
Синтаксис |
BOOL SystemTimeToFileTime( CONST SYSTEMTIME* Ipst, LPFILETIME Ipft ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
Ipst |
CONST SYSTEMTIME *. Указатель на структуру SYSTEMTIME, содержащую значение времени, которое должно быть преобразовано. Член wDayOjWeek структуры SYSTEMTIME игнорируется. Определение структуры SYSTEMTIME приведено в описании функции FileTimeToSystemTime. |
|||||||||||||||||||
Ipft |
LPFILETIME. Указатель на структуру FILETIME, которая должна принять преобразованное системное время. Определение структуры FILETIME приведено в описании функции CompareFileTime. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
DosDateTimeToFileTime, FileTimeToDosDateTime, FileTimeToSystemTime |
|||||||||||||||||||
Пример |
См. пример для функции SetFileTime. |
|||||||||||||||||||
UnlockFile• Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция UnlockFile разблокирует участок в открытом файле. Разблокирование участка позволяет другим процессам получить доступ к этому участку. |
|||||||||||||||||||
Синтаксис |
BOOL UnlockFile( HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD dwUnlockLow, DWORD dwUnlockHigh ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
hFile |
HANDLE. Дескриптор файла, содержащего область, заблокированную функцией LockFile. Дескриптор файла должен быть создан с правами доступа к файлу GENERIC_READ или GENERIC_WRITE. |
|||||||||||||||||||
dwFile Offset Low |
DWORD. Младшие 32 бита начального байтового смещения в файле, с которого начинается заблокированная область. |
|||||||||||||||||||
dwFileOffsetHigh |
DWORD. Старшие 32 бита начального байтового смещения в файле, с которого начинается заблокированная область. |
|||||||||||||||||||
dwUnlockLow |
DWORD. Младшие 32 бита длины байтовой области, которая должна быть разблокирована. |
|||||||||||||||||||
dwUnlockHigh |
DWORD. Старшие 32 бита длины байтовой области, которая должна быть разблокирована. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
CreateFile, LockFile |
|||||||||||||||||||
Пример |
См. пример для функции LockFile. |
|||||||||||||||||||
UnlockFileEx • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция UnlockFileEx разблокирует ранее заблокированные байты, которые были заблокированы в результате вызова функции LockFileEx. Количество байтов, подлежащих разблокированию, должно точно соответствовать количеству заблокированных байтов. Два смежных участка в файле нельзя блокировать отдельно, а затем разблокировать с использованием одного участка, который охватывает оба заблокированных участка. |
|||||||||||||||||||
Синтаксис |
BOOL UnlockFileEx( HANDLE hFile, DWORD dwReserved, DWORD dwNumberOfBytesToUnlockLow, DWORD dwNumberOfBytesTo Unlockffigh, LPOVERLAPPED IpOverlapped ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
hFile |
HANDLE. Открытый дескриптор файла, в котором должны быть разблокированы байты. Дескриптор должен быть создан с правами доступа к файлу GENERIC_READ или GENERIC_WRITE |
|||||||||||||||||||
dwReserved |
DWORD. Зарезервированное значение, должно быть равно 0. |
|||||||||||||||||||
dwNumberOfBytesTo UnlockLow |
||||||||||||||||||||
DWORD. Младшие 32 бита длины байтовой области, которая должна быть разблокирована. |
||||||||||||||||||||
dwNumberOfBytesTo Unlockffigh |
||||||||||||||||||||
DWORD. Старшие 32 бита длины байтовой области, которая должна быть разблокирована. |
||||||||||||||||||||
Ip Overlapped |
LPOVERLAPPED. Указатель на структуру OVERLAPPED, используемую функцией в запросе разблокирования. Эта структура содержит позицию начала разблокируемого участка в файле. Определение структуры OVERLAPPED приведено в описании функции ReadFile. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
LockFileEx, ReadFile |
|||||||||||||||||||
Пример |
См. пример для функции LockFileEx. |
|||||||||||||||||||
UnmapViewOfFile + Windows 98 + Windows 2000 |
||||||||||||||||||||
Описание |
Функция UnmapViewOfFile отменяет отображение представления файла в адресном пространстве вызывающего процесса. Для немедленной фиксации данных на диске перед отменой отображения представления файла необходимо вызывать функцию Flush ViewOfFile. В Windows 98 файлы, для которых не отменено последнее представление, остаются открытыми с такими же ограничениями совместного доступа, как и для дескриптора первоначального файла. В Windows 2000 файлы остаются открытыми без ограничений совместного доступа. |
|||||||||||||||||||
Синтаксис |
BOOL UnmapViewOfFile( LPVOID IpBaseAddress ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
IpBaseAddress |
LPVOID. Указатель на базовый адрес отображенного представления файла, которое должно быть отменено. Этот параметр должен быть идентичен значению, возвращенному в предыдущем вызове функции MapViewOfFile или MapViewOfFileEx. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE, и все недействительные страницы, принадлежащие к указанному диапазону, должны быть записаны на диск с отложенным подтверждением; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
MapViewOfFile, MapViewOfFileEx |
|||||||||||||||||||
Пример |
См. пример для функции MapViewOfFile. |
|||||||||||||||||||
WriteFile * Window* Qfl л. Wmrirmic tnnn |
||||||||||||||||||||
Описание |
Функция WriteFile выполняет запись данных в файл. Функция начинает записывать данные в файл с позиции, обозначенной указателем файла. После выполнения записи указатель файла смещается на число фактически записанных байтов, если только файл не был открыт с атрибутом FILE_FLAG_OVERLAPPED. Если дескриптор файла был создан для перекрывающегося ввода/вывода, приложение должно само корректировать положение указателя файла после выполнения записи. |
|||||||||||||||||||
Синтаксис |
BOOL WriteFile( HANDLE hfile, LPCVOID IpBuffer, DWORD dwNumberOfBytesToWrite, LPDWORD IpNumberOfBytesWritten, LPOVERLAPPED IpOverlapped) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
hFile |
HANDLE. Дескриптор файла, в который должна быть выполнена запись. Дескриптор файла должен быть создан с правами доступа к файлу GENERIC_WRITE |
|||||||||||||||||||
IpBuffer |
LPCVOID. Указатель на буфер, содержащий данные, которые должны быть записаны в файл. |
|||||||||||||||||||
dwNumberOfBytesToWrite |
||||||||||||||||||||
DWORD. Число байтов, предназначенных для записи в файл. В отличие , от операционной системы MS-DOS, Windows 2000 интерпретирует значение 0 как указание пустой операции записи. Пустая операция записи не приводит к записи каких-либо байтов, но вызывает изменение отметки времени. Операции записи, выполняемые по сети, ограничены 65535 байтами. |
||||||||||||||||||||
IpNumberOfBytes Written |
||||||||||||||||||||
LPDWORD. Указатель на переменную, которая принимает число байтов, записанных в текущем вызове функции. Перед выполнением любой работы или проверки ошибок функция WriteFile устанавливает это значение равным 0. |
||||||||||||||||||||
IpOverlapped |
LPOVERLAPPED. Указатель на структуру OVERLAPPED, которая необходима, если дескриптор hFile был открыт с флажком FILE_FLAG_OVERLAPPED. Этот параметр не должен быть равен NULL, если при открытии дескриптора hFtle был указан флажок FILE_FLAG_OVERLAPPED. Он должен указывать на действительную структуру OVERLAPPED. Определение структуры OVERLAPPED приве- , дено в описании функции ReadFile. Если дескриптор hFile не был создан с флажком FILE_FLAG_OVERLAPPED x и параметр IpOverlapped отличен от NULL, запись начинается со смещения, указанного в структуре OVERLAPPED, и функция WriteFile не выполняет возврат до тех пор, пока не будет закончена операция записи. |
|||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
CreateFile, GetOverlappedResult, ReadFile, SetEndOfFile, WriteFileEx |
|||||||||||||||||||
Пример |
В следующем примере открывается файл FILE.DAT, и в него записывается строка после запуска программы в результате обработки сообщения WM_CREATE. Файл открывается с правами доступа для чтения/записи и остается открытым до закрытия приложения. Когда пользователь выбирает пункт меню Test!, указатель файла устанавливается в начало файла с применением функции SetFilePointer. Затем функция ReadFile читает строку из файла. Если при чтении из файла не возникало никаких ошибок, программа отображает строку с применением функции MessageBox и усекает файл до 40 символов путем вызова функции SetEndOfFile. |
|||||||||||||||||||
См. \local-sources\chapl7\17-23.txt |
||||||||||||||||||||
WriteFileEx • Windows 98 • Windows 2000 |
||||||||||||||||||||
Описание |
Функция WriteFileEx записывает данные в файл асинхронно. В отличие от функции WriteFile, которая предназначена и для синхронной, и для асинхронной работы, функция WriteFileEx позволяет выполнять запись только асинхронно. После завершения операции записи происходит вызов функции обратного вызова, определяемой приложением, если нить находится в состоянии ожидания, допускающем получение сообщений. |
|||||||||||||||||||
Синтаксис |
BOOL WriteFileEx( HANDLE hFile, LPCVOID IpBuffer, DWORD dwNumberOfBytesToWrite, LPOVERLAPPED Ip Overlapped, LPOVERLAPPED_COMPLETION_ROUTINE IpCompletionRouiine ) |
|||||||||||||||||||
Параметры |
||||||||||||||||||||
hFile |
HANDLE. Дескриптор открытого файла, в который должны быть записаны данные. Дескриптор файла должен быть открыт с флажком FILE_FLAG_OVERLAPPED и с правами доступа GENERIC_WRITE. В Windows 2000 в качестве этого параметра может применяться любой дескриптор, открытый с флажком FILE_FLAG_OVERLAPPED функцией CreateFile, или дескриптор сокета, возвращенный функциями socket или accept. В Windows 98 в качестве этого параметра может быть указан ресурс связи, почтовый слот, или дескриптор именованного канала, открытый функцией CreateFile с флажком FILE_FLAG_OVERLAPPED, или дескриптор сокета. Система Windows 98 не поддерживает асинхронные операции с файлами на диске. |
|||||||||||||||||||
IpBuffer |
LPCVOID. Указатель на буфер, содержащий данные, которые должны быть записаны в файл. Буфер должен оставаться действительным и не использоваться для других целей, пока не закончится операция записи. |
|||||||||||||||||||
dwNumberOfBytesTo Write |
||||||||||||||||||||
DWORD. Число байтов, предназначенных для записи в файл. |
||||||||||||||||||||
IpOverlapped |
LPOVERLAPPED. Указатель на структуру OVERLAPPED, предоставляющую данные, которые должны использоваться во время асинхронной записи в файл. Для файлов, которые поддерживают байтовое смешение, должно быть указано байтовое смещение, с которого начинается запись в файл. Для указания этого значения используются члены Offset и Offsetffigh структуры OVERLAPPED. Определение структуры OVERLAPPED приведено в описании функции ReadFile. |
|||||||||||||||||||
IpCompletionRoutine |
||||||||||||||||||||
LPOVERLAPPED_COMPLETION_ROUTINE. Указатель на функцию обратного вызова, которая вызывается, когда операция чтения заканчивается и вызывающая нить находится в состоянии ожидания, допускающем получение сообщений. Определение функции обратного вызова приведено в описании функции ReadFileEx ранее в этой главе. |
||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае FALSE. |
|||||||||||||||||||
Включаемый файл |
winbase.h |
|||||||||||||||||||
См. также |
ReadFileEx, WriteFile, SleepEx |
|||||||||||||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.