Freigeben über


SetEndOfFile-Funktion (fileapi.h)

Legt die physische Dateigröße für die angegebene Datei auf die aktuelle Position des Dateizeigers fest.

Die physische Dateigröße wird auch als Ende der Datei bezeichnet. Die SetEndOfFile-Funktion kann zum Abschneiden oder Erweitern einer Datei verwendet werden. Um das logische Ende einer Datei festzulegen, verwenden Sie die SetFileValidData-Funktion .

Syntax

BOOL SetEndOfFile(
  [in] HANDLE hFile
);

Parameter

[in] hFile

Ein Handle für die Datei, die erweitert oder abgeschnitten werden soll.

Das Dateihandle muss mit dem Zugriffsrecht GENERIC_WRITE erstellt werden. Weitere Informationen finden Sie unter Dateisicherheit und Zugriffsrechte.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (null). Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die SetEndOfFile-Funktion kann zum Abschneiden oder Erweitern einer Datei verwendet werden. Wenn die Datei erweitert wird, ist der Inhalt der Datei zwischen dem alten Ende der Datei und dem neuen Ende der Datei nicht definiert.

Jeder Dateistream weist Folgendes auf:

  • Dateigröße: Die Größe der Daten in einer Datei bis zum Byte.
  • Zuordnungsgröße: Die Größe des Speicherplatzes, der für eine Datei auf einem Datenträger zugewiesen wird, die immer ein gerades Vielfaches der Clustergröße ist.
  • Gültige Datenlänge: Die Länge der Daten in einer Datei, die tatsächlich in das Byte geschrieben wird. Dieser Wert ist immer kleiner oder gleich der Dateigröße.
Die SetEndOfFile-Funktion legt die Dateigröße fest. Verwenden Sie SetFileValidData , um die gültige Datenlänge festzulegen.

If
CreateFileMapping wird aufgerufen, um ein Dateizuordnungsobjekt für hFile zu erstellen. UnmapViewOfFile muss zuerst aufgerufen werden, um die Zuordnung aller Ansichten aufzuheben und CloseHandle aufzurufen, um das Dateizuordnungsobjekt zu schließen, bevor Sie SetEndOfFile aufrufen können.

Transaktionierte Vorgänge

Ist an das Handle eine Transaktion gebunden, ist die Änderung am Dateiende transaktiv.

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile fileapi.h (Einschließen von Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CloseHandle

CreateFile

CreateFileMapping

Dateiverwaltungsfunktionen

SetFileInformationByHandle

SetFileValidData

UnmapViewOfFile