Freigeben über


LZOpenFileA-Funktion (lzexpand.h)

Erstellt die angegebene Datei, öffnet sie, öffnet sie erneut oder löscht sie.

Syntax

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

Parameter

[in] lpFileName

Der Name der Datei.

[out] lpReOpenBuf

Ein Zeiger auf die OFSTRUCT-Struktur , die Informationen zur Datei empfangen soll, wenn die Datei zum ersten Mal geöffnet wird. Die Struktur kann in nachfolgenden Aufrufen der LZOpenFile-Funktion verwendet werden, um die geöffnete Datei anzuzeigen.

Das element szPathName dieser Struktur enthält Zeichen aus dem OEM-Zeichensatz (Original Equipment Manufacturer).

[in] wStyle

Die zu ergreifende Aktion. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.

Wert Bedeutung
OF_CANCEL
0x0800
Ignoriert. Wird nur für die Kompatibilität mit 16-Bit-Windows bereitgestellt. Verwenden Sie die OF_PROMPT-Formatvorlage, um ein Dialogfeld anzuzeigen, das eine Schaltfläche Abbrechen enthält.
OF_CREATE
0x1000
Weist LZOpenFile an, eine neue Datei zu erstellen. Wenn die Datei bereits vorhanden ist, wird sie auf die Länge null abgeschnitten.
OF_DELETE
0x0200
Löscht die Datei.
OF_EXIST
0x4000
Öffnet die Datei und schließt sie dann, um zu testen, ob eine Datei vorhanden ist.
OF_PARSE
0x0100
Füllt die OFSTRUCT-Struktur aus, führt jedoch keine andere Aktion aus.
OF_PROMPT
0x2000
Zeigt ein Dialogfeld an, wenn die angeforderte Datei nicht vorhanden ist. Das Dialogfeld informiert den Benutzer darüber, dass das System die Datei nicht finden kann, und es enthält die Schaltflächen Wiederholen und Abbrechen . Wenn Sie auf die Schaltfläche Abbrechen klicken, wird LZOpenFile aufgefordert, eine Fehlermeldung "Datei nicht gefunden" zurückzugeben.
OF_READ
0x0000
Öffnet eine Datei nur zum Lesen.
OF_READWRITE
0x0002
Öffnet die Datei zum Lesen und Schreiben.
OF_REOPEN
0x8000
Öffnet die Datei mithilfe von Informationen im Puffer "Erneut öffnen".
OF_SHARE_DENY_NONE
0x0040
Öffnet die Datei, ohne anderen Prozessen lese- oder schreibzugriff auf die Datei zu verweigern. LZOpenFile schlägt fehl, wenn die Datei von einem anderen Prozess im Kompatibilitätsmodus geöffnet wurde.
OF_SHARE_DENY_READ
0x0030
Öffnet die Datei und verweigert anderen Prozessen den Lesezugriff auf die Datei. LZOpenFile schlägt fehl, wenn die Datei im Kompatibilitätsmodus geöffnet wurde oder von einem anderen Prozess für den Lesezugriff geöffnet wurde.
OF_SHARE_DENY_WRITE
0x0020
Öffnet die Datei und verweigert anderen Prozessen den Schreibzugriff auf die Datei. LZOpenFile schlägt fehl, wenn die Datei im Kompatibilitätsmodus geöffnet wurde oder von einem anderen Prozess für den Schreibzugriff geöffnet wurde.
OF_SHARE_EXCLUSIVE
0x0010
Öffnet die Datei im exklusiven Modus, wobei anderen Prozessen sowohl lese- als auch schreibzugriff auf die Datei verweigert wird. LZOpenFile schlägt fehl, wenn die Datei in einem anderen Modus für Lese- oder Schreibzugriff geöffnet wurde, auch durch den aktuellen Prozess.
OF_WRITE
0x0001
Öffnet die Datei nur zum Schreiben.

Rückgabewert

Wenn die Funktion erfolgreich ist und der vom wStyle-Parameter angegebene Wert nicht OF_READ ist, ist der Rückgabewert ein Handle, das die Datei identifiziert. Wenn die Datei komprimiert und geöffnet wird, wobei wStyle auf OF_READ festgelegt ist, ist der Rückgabewert ein spezielles Dateihandle.

Wenn die Funktion fehlschlägt, ist der Rückgabewert ein LZERROR_* -Code. Diese Codes haben Werte kleiner als 00. Es gibt keine erweiterten Fehlerinformationen für diese Funktion. Rufen Sie GetLastError nicht auf.

Hinweis: LZOpenFile ruft weder SetLastError noch SetLastErrorEx auf. daher wirkt sich sein Fehler nicht auf den Code des letzten Fehlers eines Threads aus.
 
Im Folgenden finden Sie die Liste der Fehlercodes, die LZOpenFile bei einem Fehler zurückgeben kann.
Rückgabecode/-wert BESCHREIBUNG
LZERROR_BADINHANDLE
-1
Das Handle, das die Quelldatei identifiziert, ist ungültig. Die Datei kann nicht gelesen werden.
LZERROR_GLOBALLOC
-5
Die maximale Anzahl geöffneter komprimierter Dateien wurde überschritten, oder der lokale Arbeitsspeicher kann nicht zugewiesen werden.

Hinweise

Wenn der wStyle-Parameter das OF_READ-Flag (oder OF_READ und eines der OF_SHARE_* -Flags) ist und die Datei komprimiert ist, ruft LZOpenFile die LZInit-Funktion auf, die die erforderliche Initialisierung für die Dekomprimierungsvorgänge ausführt.

Der von dieser Funktion zurückgegebene Handle ist nur mit den Funktionen in Lz32.dll kompatibel. Es sollte nicht für andere Dateivorgänge verwendet werden.

Wenn LZOpenFile die durch lpFileName angegebene Datei nicht öffnen kann, versucht es in einigen Versionen von Windows, eine Datei mit fast dem gleichen Dateinamen zu öffnen, außer das letzte Zeichen wird durch einen Unterstrich ("") ersetzt. Wenn also ein Versuch, "MyProgram.exe" zu öffnen, fehlschlägt, versucht LZOpenFile , "MyProgram.ex" zu öffnen. Installationspakete ersetzen häufig den Unterstrich durch den letzten Buchstaben einer Dateinamenerweiterung, um anzugeben, dass die Datei komprimiert ist. Beispielsweise kann "MyProgram.exe" komprimiert den Namen "MyProgram.ex_" haben. Um den Namen der geöffneten Datei (falls vorhanden) zu ermitteln, untersuchen Sie das szPathName-Element der OFSTRUCT-Struktur im lpReOpenBuf-Parameter .

Unter Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.

Technologie Unterstützt
SMB 3.0-Protokoll (Server Message Block) Ja
SMB 3.0 Transparent Failover (TFO) Ja
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) Ja
Dateisystem mit freigegebenen Clustervolumes (CsvFS) Ja
Robustes Dateisystem (Resilient File System, ReFS) Ja
 

CsvFs leiten E/A für komprimierte Dateien um.

Hinweis

Der lzexpand.h-Header definiert LZOpenFile als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile lzexpand.h (einschließlich Windows.h)
Bibliothek Lz32.lib
DLL Lz32.dll

Weitere Informationen

Komprimierung und Dekomprimierung von Dateien

Dateiverwaltungsfunktionen

LZClose

LZInit

LZRead

OFSTRUCT