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 |
---|---|
|
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. |
|
Leitet LZOpenFile- an, um eine neue Datei zu erstellen. Wenn die Datei bereits vorhanden ist, wird sie auf null Länge abgeschnitten. |
|
Löscht die Datei. |
|
Öffnet die Datei und schließt sie dann, um das Vorhandensein einer Datei zu testen. |
|
Füllt die OFSTRUCT Struktur aus, führt jedoch keine andere Aktion aus. |
|
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. |
|
Öffnet die Datei nur zum Lesen. |
|
Öffnet die Datei zum Lesen und Schreiben. |
|
Öffnet die Datei mithilfe von Informationen im erneuten Puffer. |
|
Ö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. |
|
Ö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. |
|
Ö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. |
|
Ö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. |
|
Ö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.
Zurückgeben von Code/Wert | Beschreibung |
---|---|
|
Das Handle, das die Quelldatei identifiziert, ist ungültig. Die Datei kann nicht gelesen werden. |
|
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 |