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 |