GetCompressedFileSizeW-Funktion (fileapi.h)

Ruft die tatsächliche Anzahl von Bytes des Datenträgerspeichers ab, der zum Speichern einer angegebenen Datei verwendet wird. Wenn sich die Datei auf einem Volume befindet, das die Komprimierung unterstützt, und die Datei komprimiert wird, entspricht der abgerufene Wert der komprimierten Größe der angegebenen Datei. Wenn sich die Datei auf einem Volume befindet, das Sparsedateien unterstützt, und die Datei eine Sparsedatei ist, entspricht der abgerufene Wert der Sparsegröße der angegebenen Datei.

Um diesen Vorgang als transaktionierten Vorgang auszuführen, verwenden Sie die GetCompressedFileSizeTransacted-Funktion .

Syntax

DWORD GetCompressedFileSizeW(
  [in]            LPCWSTR lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh
);

Parameter

[in] lpFileName

Der Name der Datei.

Geben Sie nicht den Namen einer Datei auf einem nicht einsehenden Gerät an, z. B. einer Pipe oder einem Kommunikationsgerät, da die Dateigröße keine Bedeutung hat.

Dieser Parameter kann den Pfad enthalten.

Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um diesen Grenzwert auf 32.767 Breitzeichen zu erweitern, stellen Sie dem Pfad "\\?\" voran. Weitere Informationen finden Sie unter Benennen von Dateien, Pfaden und Namespaces.

Tipp

Ab Windows 10 Version 1607 können Sie die MAX_PATH-Einschränkung aufheben, ohne "\\?\" vorab ausstehen zu müssen. Ausführliche Informationen finden Sie im Abschnitt "Maximale Längenbeschränkung für Pfade" unter Benennen von Dateien, Pfaden und Namespaces .

[out, optional] lpFileSizeHigh

Die hohe DWORD-Reihenfolge der komprimierten Dateigröße. Der Rückgabewert der Funktion ist die niedrige DWORD-Reihenfolge der komprimierten Dateigröße.

Dieser Parameter kann NULL sein, wenn das hohe DWORD der komprimierten Dateigröße nicht benötigt wird. Für Dateien mit einer Größe von weniger als 4 Gb ist das DWORD mit hoher Reihenfolge nicht erforderlich.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert der DWORD-Wert in niedriger Reihenfolge der tatsächlichen Anzahl von Bytes des Datenträgerspeichers, der zum Speichern der angegebenen Datei verwendet wird, und wenn lpFileSizeHigh nicht NULL ist, fügt die Funktion die hohe DWORD-Reihenfolge dieses tatsächlichen Werts in das DWORD ein, auf das dieser Parameter verweist. Dies ist die komprimierte Dateigröße für komprimierte Dateien, die tatsächliche Dateigröße für nicht komprimierte Dateien.

Wenn die Funktion fehlschlägt und lpFileSizeHighNULL ist, wird der Rückgabewert INVALID_FILE_SIZE. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Wenn der Rückgabewert INVALID_FILE_SIZE und lpFileSizeHigh ungleich NULL ist, muss eine Anwendung GetLastError aufrufen, um zu bestimmen, ob die Funktion erfolgreich (Wert ist NO_ERROR) oder fehlgeschlagen ist (wert ist nicht NO_ERROR).

Bemerkungen

Eine Anwendung kann ermitteln, ob ein Volume komprimiert wird, indem sie GetVolumeInformation aufruft und dann die status des FS_VOL_IS_COMPRESSED Flags im DWORD-Wert überprüft, auf den der lpFileSystemFlags-Parameter dieser Funktion verweist.

Wenn sich die Datei nicht auf einem Volume befindet, das Komprimierungs- oder Sparsedateien unterstützt, oder wenn die Datei nicht komprimiert oder eine Sparsedatei ist, entspricht der abgerufene Wert der tatsächlichen Dateigröße, der durch einen Aufruf von GetFileSize zurückgegeben wird.

Verhalten symbolischer Verknüpfungen: Wenn der Pfad auf einen symbolischen Link verweist, gibt die Funktion die Dateigröße des Ziels zurück.

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

Technologie Unterstützt
Server Message Block (SMB) 3.0-Protokoll Ja
SMB 3.0 Transparent Failover (TFO) Ja
SMB 3.0 mit Dateifreigaben für horizontales Skalieren (SO) Ja
Freigegebenes Clustervolume-Dateisystem (CsvFS) Ja
Robustes Dateisystem (Resilient File System, ReFS) Ja
 

Hinweis

Der Fileapi.h-Header definiert GetCompressedFileSize 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 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

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile fileapi.h (include Windows.h, WinBase.h, Fileapi.h, Windows.h, WinBase.h, Fileapi.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Dateikomprimierung und Dekomprimierung

Dateiverwaltungsfunktionen

GetCompressedFileSizeTransacted

GetFileSize

GetVolumeInformation

Symbolische Links