fsutil file
依使用者名稱尋找檔案 (如果已啟用磁碟配額)、查詢檔案的配置範圍、設定檔案的簡短名稱、設定檔案的有效資料長度、設定檔案的零資料,或建立新的檔案
語法
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 | 將檔案的範圍 (由 offset 和 length指定) 設定為零,以清空檔案。 如果檔案是疏稀檔案,則會取消認可基礎配置單位。 |
備註
在 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