Freigeben über


GetFileSize-Funktion (fileapi.h)

Ruft die Größe der angegebenen Datei in Byte ab.

Es wird empfohlen, GetFileSizeEx zu verwenden.

Syntax

DWORD GetFileSize(
  [in]            HANDLE  hFile,
  [out, optional] LPDWORD lpFileSizeHigh
);

Parameter

[in] hFile

Ein Handle zur Datei.

[out, optional] lpFileSizeHigh

Ein Zeiger auf die Variable, in der das großformatige Doppelwort der Dateigröße zurückgegeben wird. Dieser Parameter kann NULL sein, wenn die Anwendung das hochgeordnete Doppelwort nicht erfordert.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert das Doppelwort mit niedriger Reihenfolge der Dateigröße, und wenn lpFileSizeHigh nicht NULL ist, legt die Funktion das hochgeordnete Doubleword der Dateigröße in die Variable ein, auf die dieser Parameter verweist.

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 lpFileSizeHighNULL ist, sind die für große Dateien zurückgegebenen Ergebnisse mehrdeutig, und Sie können die tatsächliche Größe der Datei nicht ermitteln. Es wird empfohlen, stattdessen GetFileSizeEx zu verwenden.

Wenn die Funktion fehlschlägt und lpFileSizeHigh nicht NULL ist, wird der Rückgabewert INVALID_FILE_SIZE , und GetLastError gibt einen anderen Wert als NO_ERROR zurück.

Hinweise

Sie können die GetFileSize-Funktion nicht mit einem Handle eines nicht anzeigenden Geräts wie einer Pipe oder einem Kommunikationsgerät verwenden. Verwenden Sie die GetFileType-Funktion, um den Dateityp für hFile zu bestimmen.

Die GetFileSize-Funktion ruft die nicht komprimierte Größe einer Datei ab. Verwenden Sie die Funktion GetCompressedFileSize, um die komprimierte Größe einer Datei abzurufen.

Beachten Sie, dass eine Anwendung GetLastError aufrufen muss, wenn der Rückgabewert INVALID_FILE_SIZE (0xffffffff) ist, um festzustellen, ob die Funktion erfolgreich oder fehlgeschlagen ist. Der Grund, warum die Funktion möglicherweise fehlschlägt, wenn dies nicht der Fall ist, ist, dass lpFileSizeHigh nicht NULL sein könnte oder dass die Dateigröße 0xffffffff sein könnte. In diesem Fall gibt GetLastError bei Erfolg NO_ERROR (0) zurück. Aufgrund dieses Verhaltens wird empfohlen, stattdessen GetFileSizeEx zu verwenden.

Transaktionsvorgänge: Wenn eine Transaktion an das Dateihandle gebunden ist, gibt die Funktion Informationen für die isolierte Dateiansicht 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
 

Beispiele

Ein Beispiel finden Sie unter Erstellen einer Ansicht in einer Datei.

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 (Einschließen von Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Dateiverwaltungsfunktionen

GetCompressedFileSize

GetFileSizeEx

GetFileType