fsutil file

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows 10、Windows Server 2012 R2、Windows 8.1、Windows Server 2012、Windows 8

依使用者名稱尋找檔案 (如果已啟用磁碟配額)、查詢檔案的配置範圍、設定檔案的簡短名稱、設定檔案的有效資料長度、設定檔案的零資料,或建立新的檔案

語法

fsutil file [createnew] <filename> <length>
fsutil file [findbysid] <username> <directory>
fsutil file [optimizemetadata] [/A] <filename>
fsutil file [queryallocranges] offset=<offset> length=<length> <filename>
fsutil file [queryextents] [/R] <filename> [<startingvcn> [<numvcns>]]
fsutil file [queryfileid] <filename>
fsutil file [queryfilenamebyid] <volume> <fileid>
fsutil file [queryoptimizemetadata] <filename>
fsutil file [queryvaliddata] [/R] [/D] <filename>
fsutil file [seteof] <filename> <length>
fsutil file [setshortname] <filename> <shortname>
fsutil file [setvaliddata] <filename> <datalength>
fsutil file [setzerodata] offset=<offset> length=<length> <filename>

參數

參數 描述
createnew 建立指定名稱和大小的檔案,其內容由零組成。
<length> 指定檔案的有效資料長度。
findbysid 在啟用磁碟配額的 NTFS 磁碟區上,尋找屬於指定使用者的檔案。
<username> 指定使用者的使用者名稱或登入名稱。
<directory> 指定目錄的完整路徑,例如 C:\users。
optimizemetadata 這會立即壓縮指定檔案的中繼資料。
/a 分析最佳化前後的檔案中繼資料。
queryallocranges 查詢 NTFS 磁碟區上檔案的配置範圍。 對於判斷檔案是否具有疏鬆區域很有用。
offset=<offset> 指定應設定為零的範圍開頭。
length=<length> 指定範圍的長度 (以位元組為單位)。
queryextents 查詢檔案的範圍。
/r 如果 <filename> 是重新分析點,請開啟它,而不是其目標。
<startingvcn> 指定要查詢的第一個 VCN。 如果省略,請從 VCN 0 開始。
<numvcns> 要查詢的 VCN 數目。 如果省略或為 0,請查詢直到 EOF 為止。
queryfileid 查詢 NTFS 磁碟區上檔案的檔案識別碼。
<volume> 將磁碟區指定為磁碟機名稱,後面接著冒號。
queryfilenamebyid 顯示 NTFS 磁碟區上指定檔案識別碼的隨機連結名稱。 由於檔案可以有多個指向該檔案的連結名稱,因此無法保證查詢檔案名稱的結果將提供哪個檔案連結。
<fileid> 指定 NTFS 磁碟區上檔案的識別碼。
queryoptimizemetadata 查詢檔案的中繼資料狀態。
queryvaliddata 查詢檔案的有效資料長度。
/d 顯示詳細的有效資料資訊。
seteof 設定指定檔案的 EOF。
setshortname 設定 NTFS 磁碟區上檔案的簡短名稱 (8.3 字元長度檔案名稱)。
<shortname> 指定檔案的簡短名稱。
setvaliddata 設定 NTFS 磁碟區上檔案的有效資料長度。
<datalength> 指定檔案的長度 (以位元組為單位)。
setzerodata 將檔案的範圍 (由 offsetlength指定) 設定為零,以清空檔案。 如果檔案是疏稀檔案,則會取消認可基礎配置單位。

備註

  • 在 NTFS 中,檔案長度有兩個重要概念:檔案結尾 (EOF) 標記和有效資料長度 (VDL)。 EOF 表示檔案的實際長度。 VDL 會識別磁碟上有效資料的長度。 VDL 與 EOF 之間的任何讀取都會自動傳回 0,以保留 C2 物件重複使用要求。

  • setvaliddata 參數僅適用於管理員,因為它需要執行磁碟區維護工作 (SeManageVolumePrivilege) 權限。 只有進階多媒體和系統區域網路案例才需要此功能。 setvaliddata 參數必須是大於目前 VDL 但小於目前檔案大小的正值。

    在以下情況,程式在設定 VDL 時很有用:

    • 透過硬體通道直接將原始叢集寫入磁碟。 這可讓程式通知檔案系統此範圍包含可傳回給使用者的有效資料。

    • 當效能是問題時建立大型檔案。 這可避免在建立或擴充檔案時,以零填滿檔案所需的時間。

範例

若要在磁碟機 C 上尋找 scottb 所擁有的檔案,請輸入:

fsutil file findbysid scottb c:\users

若要查詢 NTFS 磁碟區上檔案的配置範圍,請輸入:

fsutil file queryallocranges offset=1024 length=64 c:\temp\sample.txt

若要最佳化檔案的中繼資料,請輸入:

fsutil file optimizemetadata C:\largefragmentedfile.txt

若要查詢檔案的範圍,請輸入:

fsutil file queryextents C:\Temp\sample.txt

若要設定檔案的 EOF,請輸入:

fsutil file seteof C:\testfile.txt 1000

若要將磁碟機 C 上的檔案 longfilename.txt 的簡短名稱設定為 longfile.txt,請輸入:

fsutil file setshortname c:\longfilename.txt longfile.txt

若要將 NTFS 磁碟區上名為 testfile.txt 檔案的有效資料長度設定為 4096 位元組,請輸入:

fsutil file setvaliddata c:\testfile.txt 4096

若要將 NTFS 磁碟區上的檔案範圍設定為零以將它清空,請輸入:

fsutil file setzerodata offset=100 length=150 c:\temp\sample.txt