Freigeben über


LZOpenFileA-Funktion (lzexpand.h)

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

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 empfängt, 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 szPathName Mitglied dieser Struktur enthält Zeichen aus dem Originalgerätehersteller (OEM)-Zeichensatz.

[in] wStyle

Die auszuführende Aktion. Dieser Parameter kann einen oder mehrere der folgenden Werte sein.

Wert Bedeutung
OF_CANCEL
0x0800
Ignoriert. Wird nur zur Kompatibilität mit 16-Bit-Windows bereitgestellt. Verwenden Sie die OF_PROMPT Formatvorlage, um ein Dialogfeld mit einer Schaltfläche Abbrechen anzuzeigen.
OF_CREATE
0x1000
Leitet LZOpenFile- an, um eine neue Datei zu erstellen. Wenn die Datei bereits vorhanden ist, wird sie auf null Länge abgeschnitten.
OF_DELETE
0x0200
Löscht die Datei.
OF_EXIST
0x4000
Öffnet die Datei und schließt sie dann, um das Vorhandensein einer Datei zu testen.
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 Schaltflächen "Wiederholen" und Schaltflächen "Abbrechen" enthält. Wenn Sie auf die Schaltfläche Abbrechen klicken, wird LZOpenFile- zum Zurückgeben einer Nicht gefundenen Fehlermeldung angezeigt.
OF_READ
0x0000
Öffnet die Datei nur zum Lesen.
OF_READWRITE
0x0002
Öffnet die Datei zum Lesen und Schreiben.
OF_REOPEN
0x8000
Öffnet die Datei mithilfe von Informationen im erneuten Puffer.
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 durch einen anderen Prozess im Kompatibilitätsmodus geöffnet wurde.
OF_SHARE_DENY_READ
0x0030
Öffnet die Datei und verweigert anderen Prozessen lesezugriff auf die Datei. LZOpenFile schlägt fehl, wenn die Datei im Kompatibilitätsmodus geöffnet wurde oder für den Lesezugriff durch einen anderen Prozess geöffnet wurde.
OF_SHARE_DENY_WRITE
0x0020
Öffnet die Datei und verweigert anderen Prozessen schreibzugriff auf die Datei. LZOpenFile schlägt fehl, wenn die Datei im Kompatibilitätsmodus geöffnet wurde oder für den Schreibzugriff durch einen anderen Prozess geöffnet wurde.
OF_SHARE_EXCLUSIVE
0x0010
Öffnet die Datei im exklusiven Modus, wobei andere Prozesse sowohl Lese- als auch Schreibzugriff auf die Datei verweigert werden. 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_READist, ist der Rückgabewert ein Handle, das die Datei identifiziert. Wenn die Datei komprimiert und mit wStyle- auf OF_READfestgelegt ist, ist der Rückgabewert ein spezieller Dateihandle.

Wenn die Funktion fehlschlägt, ist der Rückgabewert ein LZERROR_* Code. Diese Codes weisen Werte kleiner als Null auf. Für diese Funktion gibt es keine erweiterten Fehlerinformationen; rufen Sie GetLastErrornicht auf.

HinweisLZOpenFile aufruft weder SetLastError noch SetLastErrorEx; Daher wirkt sich der Fehler eines Threads nicht auf den Letzten Fehlercode eines Threads aus.
 
Es folgt die Liste der Fehlercodes, die LZOpenFile- bei Fehlern zurückgeben können.
Zurückgeben von Code/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 Speicher kann nicht zugewiesen werden.

Bemerkungen

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

Der Rückgabepunkt dieser Funktion ist nur mit den Funktionen in Lz32.dllkompatibel; sie sollte nicht für andere Dateivorgänge verwendet werden.

Wenn LZOpenFile die durch lpFileNameangegebene Datei nicht öffnen kann, versucht es in einigen Versionen von Windows, eine Datei mit fast demselben Dateinamen zu öffnen, außer das letzte Zeichen wird durch einen Unterstrich ("") ersetzt. Wenn ein Versuch, "MyProgram.exe" zu öffnen, fehlschlägt, versucht LZOpenFile, "MyProgram.ex" zu öffnen. Installationspakete ersetzen häufig den Unterstrich für 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, überprüfen Sie das szPathName Member der OFSTRUCT Struktur im lpReOpenBuf Parameter.

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

Technologie Abgestützt
Server Message Block (SMB) 3.0-Protokoll Ja
SMB 3.0 Transparent Failover (TFO) Ja
SMB 3.0 mit Skalierungsdateifreigaben (SO) Ja
Freigegebenes Clustervolumedateisystem (CsvFS) Ja
Resilient File System (ReFS) Ja
 

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

Anmerkung

Der lzexpand.h-Header definiert LZOpenFile als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, 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
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- lzexpand.h (einschließlich Windows.h)
Library Lz32.lib
DLL- Lz32.dll

Siehe auch

Dateikomprimierung und Dekomprimierung

Dateiverwaltungsfunktionen

LZClose

LZInit

LZRead

OFSTRUCT