Share via


LZOpenFileA 함수(lzexpand.h)

지정된 파일을 만들거나, 열거나, 다시 열거나, 삭제합니다.

구문

INT LZOpenFileA(
  [in]  LPSTR      lpFileName,
  [out] LPOFSTRUCT lpReOpenBuf,
  [in]  WORD       wStyle
);

매개 변수

[in] lpFileName

파일 이름입니다.

[out] lpReOpenBuf

파일이 처음 열릴 때 파일에 대한 정보를 수신하는 OFSTRUCT 구조체에 대한 포인터입니다. 구조체는 LZOpenFile 함수에 대한 후속 호출에서 열려 있는 파일을 확인하는 데 사용할 수 있습니다.

이 구조체의 szPathName 멤버는 OEM(원래 장비 제조업체) 문자 집합의 문자를 포함합니다.

[in] wStyle

수행할 작업입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
OF_CANCEL
0x0800
무시됩니다. 16비트 Windows와의 호환성을 위해서만 제공됩니다. OF_PROMPT 스타일을 사용하여 취소 단추가 포함된 대화 상자를 표시합니다.
OF_CREATE
0x1000
LZOpenFile에 새 파일을 만들도록 지시합니다. 파일이 이미 있는 경우 길이가 0으로 잘립니다.
OF_DELETE
0x0200
파일을 삭제합니다.
OF_EXIST
0x4000
파일을 연 다음 파일을 닫아 파일의 존재를 테스트합니다.
OF_PARSE
0x0100
OFSTRUCT 구조를 채우지만 다른 작업은 수행하지 않습니다.
OF_PROMPT
0x2000
요청된 파일이 없는 경우 대화 상자를 표시합니다. 대화 상자는 시스템에서 파일을 찾을 수 없으며 다시 시도취소 단추가 포함되어 있음을 사용자에게 알립니다. 취소 단추를 클릭하면 LZOpenFile에서 파일을 찾을 수 없음 오류 메시지가 반환됩니다.
OF_READ
0x0000
읽기 전용으로 파일을 엽니다.
OF_READWRITE
0x0002
읽기 및 쓰기를 위해 파일을 엽니다.
OF_REOPEN
0x8000
다시 열기 버퍼의 정보를 사용하여 파일을 엽니다.
OF_SHARE_DENY_NONE
0x0040
다른 프로세스에서 파일에 대한 읽기 또는 쓰기 액세스를 거부하지 않고 파일을 엽니다. 파일이 다른 프로세스에 의해 호환 모드로 열려 있으면 LZOpenFile이 실패합니다.
OF_SHARE_DENY_READ
0x0030
파일을 열고 다른 프로세스에서 파일에 대한 읽기 권한을 거부합니다. 파일이 호환 모드로 열려 있거나 다른 프로세스에서 읽기 액세스를 위해 열린 경우 LZOpenFile이 실패합니다.
OF_SHARE_DENY_WRITE
0x0020
파일을 열고 다른 프로세스에서 파일에 대한 쓰기 액세스를 거부합니다. 파일이 호환 모드로 열려 있거나 다른 프로세스의 쓰기 액세스를 위해 열린 경우 LZOpenFile이 실패합니다.
OF_SHARE_EXCLUSIVE
0x0010
파일을 단독 모드로 열고 파일에 대한 읽기 및 쓰기 액세스 권한을 모두 거부하는 다른 프로세스를 거부합니다. 현재 프로세스에서도 읽기 또는 쓰기 액세스에 대한 다른 모드에서 파일을 연 경우 LZOpenFile이 실패합니다.
OF_WRITE
0x0001
쓰려는 경우에만 파일을 엽니다.

반환 값

함수가 성공하고 wStyle 매개 변수에 지정된 값이 OF_READ 않으면 반환 값은 파일을 식별하는 핸들입니다. wStyleOF_READ 설정하여 파일을 압축하고 열면 반환 값은 특수 파일 핸들입니다.

함수가 실패하면 반환 값은 LZERROR_* 코드입니다. 이러한 코드에는 0보다 작은 값이 있습니다. 이 함수에 대한 확장 오류 정보는 없습니다. GetLastError를 호출하지 마세요.

참고LZOpenFileSetLastError 또는 SetLastErrorEx를 호출하지 않습니다. 따라서 오류는 스레드의 마지막 오류 코드에 영향을 주지 않습니다.
 
다음은 LZOpenFile 이 실패 시 반환할 수 있는 오류 코드 목록입니다.
반환 코드/값 설명
LZERROR_BADINHANDLE
-1
원본 파일을 식별하는 핸들이 잘못되었습니다. 파일을 읽을 수 없습니다.
LZERROR_GLOBALLOC
-5
열려 있는 압축된 파일의 최대 수가 초과되었거나 로컬 메모리를 할당할 수 없습니다.

설명

wStyle 매개 변수가 OF_READ 플래그(또는 OF_READOF_SHARE_* 플래그)이고 파일이 압축된 경우 LZOpenFile은 압축 해제 작업에 필요한 초기화를 수행하는 LZInit 함수를 호출합니다.

이 함수가 반환하는 핸들은 Lz32.dll 함수와만 호환됩니다. 다른 파일 작업에는 사용하지 않아야 합니다.

LZOpenFilelpFileName으로 지정된 파일을 열 수 없는 경우 일부 Windows 버전에서는 마지막 문자가 밑줄("")로 바뀐 것을 제외하고 거의 동일한 파일 이름으로 파일을 열려고 시도합니다. 따라서 "MyProgram.exe" 열기 시도가 실패하면 LZOpenFile은 "MyProgram.ex"를 열려고 시도합니다. 설치 패키지는 파일이 압축되었음을 나타내기 위해 파일 이름 확장명의 마지막 글자로 밑줄을 대체하는 경우가 많습니다. 예를 들어 압축된 "MyProgram.exe"의 이름은 "MyProgram.ex_"일 수 있습니다. 열린 파일의 이름을 확인하려면(있는 경우) lpReOpenBuf 매개 변수에서 OFSTRUCT 구조체의szPathName 멤버를 검사합니다.

Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 Yes
SMB 3.0 TFO(투명 장애 조치(failover)) Yes
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 Yes
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes
ReFS(Resilient File System)
 

CsvF는 압축된 파일에 대해 리디렉션된 IO를 수행합니다.

참고

lzexpand.h 헤더는 LZOpenFile을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 lzexpand.h(Windows.h 포함)
라이브러리 Lz32.lib
DLL Lz32.dll

추가 정보

파일 압축 및 압축 해제

파일 관리 함수

LZClose

LZInit

LZRead

OFSTRUCT