setEndOfFile 函式 (fileapi.h)

將指定檔案的實體檔案大小設定為檔案指標的目前位置。

實體檔案大小也稱為檔案結尾。 SetEndOfFile函式可用來截斷或擴充檔案。 若要設定檔案的邏輯結尾,請使用 SetFileValidData 函 式。

語法

BOOL SetEndOfFile(
  [in] HANDLE hFile
);

參數

[in] hFile

要擴充或截斷之檔案的控制碼。

您必須使用 GENERIC_WRITE 存取權限來建立檔案控制代碼。 如需詳細資訊,請參閱 檔案安全性和存取權限

傳回值

如果函式成功,則傳回非零的值。

如果函式失敗,傳回值為零, (0) 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

SetEndOfFile函式可用來截斷或擴充檔案。 如果擴充檔案,則不會定義檔案的舊端與檔案新端之間的檔案內容。

每個檔案資料流程都有下列專案:

  • 檔案大小:檔案中的資料大小,到位元組。
  • 配置大小:為磁片上的檔案配置的空間大小,一律是叢集大小的偶數倍數。
  • 有效資料長度:實際寫入位元組之檔案中的資料長度。 這個值一律小於或等於檔案大小。
SetEndOfFile函式會設定檔案大小。 使用 SetFileValidData 來設定有效的資料長度。

如果
呼叫 CreateFileMapping 來建立 hFile的檔案對應物件,必須先呼叫 UnmapViewOfFile 才能取消對應所有檢視,並呼叫 CloseHandle 以關閉檔案對應物件,才能呼叫 SetEndOfFile

交易作業

如果交易系結至控制碼,則會交易檔案結尾位置的變更。

在Windows 8和Windows Server 2012中,下列技術支援此函式。

技術 支援
伺服器訊息區 (SMB) 3.0 通訊協定
SMB 3.0 透明容錯移轉 (TFO)
具有向外延展檔案共用的 SMB 3.0 (SO)
叢集共用磁片區檔案系統 (CsvFS)
彈性檔案系統 (ReFS)

規格需求

   
最低支援的用戶端 Windows XP [傳統型應用程式|UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式|UWP 應用程式]
目標平臺 Windows
標頭 fileapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CloseHandle

CreateFile

CreateFileMapping

檔案管理功能

SetFileInformationByHandle

SetFileValidData

UnmapViewOfFile