Функция LZOpenFileW (lzexpand.h)
Создает, открывает, повторно открывает или удаляет указанный файл.
Синтаксис
INT LZOpenFileW(
[in] LPWSTR lpFileName,
[out] LPOFSTRUCT lpReOpenBuf,
[in] WORD wStyle
);
Параметры
[in] lpFileName
Имя файла.
[out] lpReOpenBuf
Указатель на структуру OFSTRUCT, которая заключается в получении сведений о файле при первом открытии файла. Структура может использоваться в последующих вызовах функции LZOpenFile для просмотра открытого файла.
Элемент szPathName этой структуры содержит символы из исходного набора символов изготовителя оборудования (OEM).
[in] wStyle
Действие, выполняемое. Этот параметр может быть одним или несколькими из следующих значений.
Возвращаемое значение
Если функция завершается успешно, а значение, указанное параметром wStyle, не OF_READ, возвращаемое значение — это дескриптор, определяющий файл. Если файл сжимается и открывается с помощью wStyle задано значение OF_READ, возвращаемое значение представляет собой специальный дескриптор файла.
Если функция завершается ошибкой, возвращаемое значение является кодом LZERROR_*. Эти коды имеют значения меньше нуля. Для этой функции нет расширенных сведений об ошибке; не вызывайте GetLastError.
Возврат кода или значения | Описание |
---|---|
|
Дескриптор, определяющий исходный файл, недопустим. Файл не может быть прочитан. |
|
Максимальное количество открытых сжатых файлов было превышено или локальная память не может быть выделена. |
Замечания
Если параметр wStyle является флагом OF_READ (или OF_READ и любым из флагов OF_SHARE_*), а файл сжимается, LZOpenFile вызывает функцию LZInit, которая выполняет требуемую инициализацию для операций распаковки.
Дескриптор этой функции возвращается совместим только с функциями в Lz32.dll; Он не должен использоваться для других операций с файлами.
Если LZOpenFile не удается открыть файл, указанный lpFileName, в некоторых версиях Windows он пытается открыть файл с почти тем же именем файла, за исключением последнего символа заменен символом подчеркивания ("_"). Таким образом, если попытка открыть "MyProgram.exe" завершается ошибкой, LZOpenFile пытается открыть "MyProgram.ex_". Пакеты установки часто заменяют символ подчеркивания для последней буквы расширения имени файла, чтобы указать, что файл сжимается. Например, "MyProgram.exe" может называться "MyProgram.ex_". Чтобы определить имя открытого файла (если таковые есть), проверьте элемент szPathName структуры OFSTRUCT в параметре lpReOpenBuf.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технологии | Поддержанный |
---|---|
Протокол SMB 3.0 | Да |
Отработка отказа SMB 3.0 (TFO) | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Отказоустойчивая файловая система (ReFS) | Да |
CsvFs будет выполнять перенаправленные операции ввода-вывода для сжатых файлов.
Заметка
Заголовок lzexpand.h определяет LZOpenFile как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | lzexpand.h (включая Windows.h) |
библиотеки |
Lz32.lib |
DLL | Lz32.dll |