LZOpenFileA 함수(lzexpand.h)
지정된 파일을 만들거나, 열거나, 다시 열거나, 삭제합니다.
구문
INT LZOpenFileA(
[in] LPSTR lpFileName,
[out] LPOFSTRUCT lpReOpenBuf,
[in] WORD wStyle
);
매개 변수
[in] lpFileName
파일 이름입니다.
[out] lpReOpenBuf
파일이 처음 열릴 때 파일에 대한 정보를 수신하는 OFSTRUCT 구조체에 대한 포인터입니다. 구조체는 LZOpenFile 함수에 대한 후속 호출에서 열려 있는 파일을 확인하는 데 사용할 수 있습니다.
이 구조체의 szPathName 멤버는 OEM(원래 장비 제조업체) 문자 집합의 문자를 포함합니다.
[in] wStyle
수행할 작업입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.
값 | 의미 |
---|---|
|
무시됩니다. 16비트 Windows와의 호환성을 위해서만 제공됩니다. OF_PROMPT 스타일을 사용하여 취소 단추가 포함된 대화 상자를 표시합니다. |
|
LZOpenFile에 새 파일을 만들도록 지시합니다. 파일이 이미 있는 경우 길이가 0으로 잘립니다. |
|
파일을 삭제합니다. |
|
파일을 연 다음 파일을 닫아 파일의 존재를 테스트합니다. |
|
OFSTRUCT 구조를 채우지만 다른 작업은 수행하지 않습니다. |
|
요청된 파일이 없는 경우 대화 상자를 표시합니다. 대화 상자는 시스템에서 파일을 찾을 수 없으며 다시 시도 및 취소 단추가 포함되어 있음을 사용자에게 알립니다. 취소 단추를 클릭하면 LZOpenFile에서 파일을 찾을 수 없음 오류 메시지가 반환됩니다. |
|
읽기 전용으로 파일을 엽니다. |
|
읽기 및 쓰기를 위해 파일을 엽니다. |
|
다시 열기 버퍼의 정보를 사용하여 파일을 엽니다. |
|
다른 프로세스에서 파일에 대한 읽기 또는 쓰기 액세스를 거부하지 않고 파일을 엽니다. 파일이 다른 프로세스에 의해 호환 모드로 열려 있으면 LZOpenFile이 실패합니다. |
|
파일을 열고 다른 프로세스에서 파일에 대한 읽기 권한을 거부합니다. 파일이 호환 모드로 열려 있거나 다른 프로세스에서 읽기 액세스를 위해 열린 경우 LZOpenFile이 실패합니다. |
|
파일을 열고 다른 프로세스에서 파일에 대한 쓰기 액세스를 거부합니다. 파일이 호환 모드로 열려 있거나 다른 프로세스의 쓰기 액세스를 위해 열린 경우 LZOpenFile이 실패합니다. |
|
파일을 단독 모드로 열고 파일에 대한 읽기 및 쓰기 액세스 권한을 모두 거부하는 다른 프로세스를 거부합니다. 현재 프로세스에서도 읽기 또는 쓰기 액세스에 대한 다른 모드에서 파일을 연 경우 LZOpenFile이 실패합니다. |
|
쓰려는 경우에만 파일을 엽니다. |
반환 값
함수가 성공하고 wStyle 매개 변수에 지정된 값이 OF_READ 않으면 반환 값은 파일을 식별하는 핸들입니다. wStyle을 OF_READ 설정하여 파일을 압축하고 열면 반환 값은 특수 파일 핸들입니다.
함수가 실패하면 반환 값은 LZERROR_* 코드입니다. 이러한 코드에는 0보다 작은 값이 있습니다. 이 함수에 대한 확장 오류 정보는 없습니다. GetLastError를 호출하지 마세요.
반환 코드/값 | 설명 |
---|---|
|
원본 파일을 식별하는 핸들이 잘못되었습니다. 파일을 읽을 수 없습니다. |
|
열려 있는 압축된 파일의 최대 수가 초과되었거나 로컬 메모리를 할당할 수 없습니다. |
설명
wStyle 매개 변수가 OF_READ 플래그(또는 OF_READ 및 OF_SHARE_* 플래그)이고 파일이 압축된 경우 LZOpenFile은 압축 해제 작업에 필요한 초기화를 수행하는 LZInit 함수를 호출합니다.
이 함수가 반환하는 핸들은 Lz32.dll 함수와만 호환됩니다. 다른 파일 작업에는 사용하지 않아야 합니다.
LZOpenFile이 lpFileName으로 지정된 파일을 열 수 없는 경우 일부 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 |