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 |
---|---|
|
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. |
|
Weist LZOpenFile an, eine neue Datei zu erstellen. Wenn die Datei bereits vorhanden ist, wird sie auf die Länge null abgeschnitten. |
|
Löscht die Datei. |
|
Öffnet die Datei und schließt sie dann, um zu testen, ob eine Datei vorhanden ist. |
|
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 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. |
|
Öffnet eine Datei nur zum Lesen. |
|
Öffnet die Datei zum Lesen und Schreiben. |
|
Öffnet die Datei mithilfe von Informationen im Puffer "Erneut öffnen". |
|
Ö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. |
|
Ö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. |
|
Ö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. |
|
Ö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. |
|
Ö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.
Rückgabecode/-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 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 |