GetCompressedFileSizeA-Funktion (fileapi.h)
Ruft den tatsächlichen Datenträgerspeicher (in Byte) 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, ist der abgerufene Wert die komprimierte 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 GetCompressedFileSizeA(
[in] LPCSTR lpFileName,
[out, optional] LPDWORD lpFileSizeHigh
);
Parameter
[in] lpFileName
Der Name der Datei.
Geben Sie nicht den Namen einer Datei auf einem nicht aufrufenden 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 dieses Limit auf 32.767 breite Zeichen zu erweitern, müssen Sie dem Pfad "\\?\" voranstellen. 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 entfernen, ohne "\\?\" vorauszustellen. Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbegrenzung" unter Benennung von Dateien, Pfaden und Namespaces .
[out, optional] lpFileSizeHigh
Die hohe DWORD-Reihenfolge der komprimierten Dateigröße. Der Rückgabewert der Funktion ist der DWORD-Wert in niedriger Reihenfolge der komprimierten Dateigröße.
Dieser Parameter kann NULL sein, wenn die hohe DWORD-Reihenfolge der komprimierten Dateigröße nicht erforderlich ist. Dateien, die weniger als 4 Gigabyte groß sind, benötigen nicht das hochwertige DWORD.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert der DWORD in niedriger Reihenfolge der tatsächlichen Anzahl von Bytes des Datenträgerspeichers, die 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 ist und lpFileSizeHigh nicht NULL ist, muss eine Anwendung GetLastError aufrufen, um festzustellen, ob die Funktion erfolgreich (Wert ist NO_ERROR) oder fehlgeschlagen ist (wert ist nicht NO_ERROR).
Hinweise
Eine Anwendung kann ermitteln, ob ein Volume komprimiert wird, indem Sie GetVolumeInformation aufrufen und dann die status des FS_VOL_IS_COMPRESSED Flags im DWORD-Wert überprüfen, 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, dem Wert, der von einem 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.
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 |
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 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 | fileapi.h (einschließlich Windows.h, WinBase.h, Fileapi.h, Windows.h, WinBase.h, Fileapi.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |
Siehe auch
Komprimierung und Dekomprimierung von Dateien