fsutil file

按用户名查找文件(如果启用了磁盘配额)、查询文件的已分配范围、设置文件的短名称、设置文件的有效数据长度、为文件设置零数据,或创建新文件。

Syntax

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>

Parameters

Parameter Description
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 卷上文件的文件 ID。
<volume> 将卷指定为驱动器名称,后跟冒号。
queryfilenamebyid 显示 NTFS 卷上指定文件 ID 的随机链接名称。 由于文件可以有多个指向该文件的链接名称,因此不能保证查询文件名后会提供哪个文件链接。
<fileid> 指定 NTFS 卷上文件的 ID。
queryoptimizemetadata 查询文件的元数据状态。
queryvaliddata 查询文件的有效数据长度。
/d 显示详细的有效数据信息。
seteof 设置给定文件的 EOF。
setshortname 为 NTFS 卷上的文件设置短名称(8.3 个字符长度的文件名)。
<shortname> 指定文件的短名称。
setvaliddata 设置 NTFS 卷上文件的有效数据长度。
<datalength> 指定文件的长度(以字节为单位)。
setzerodata Sets a range (specified by offset and length) of the file to zeroes, which empties the file. 如果文件是稀疏文件,则取消提交基础分配单元。

Remarks

  • 在 NTFS 中,有两个重要的文件长度概念:文件结束 (EOF) 标记和有效数据长度 (VDL)。 EOF 指示文件的实际长度。 VDL 标识磁盘上的有效数据的长度。 在 VDL 和 EOF 之间的任何读取都会自动返回 0 以保留 C2 对象重用要求。

  • The setvaliddata parameter is only available for administrators because it requires the Perform volume maintenance tasks (SeManageVolumePrivilege) privilege. 只有高级多媒体和系统区域网络方案才需要此功能。 The setvaliddata parameter must be a positive value that is greater than the current VDL, but less than the current file size.

    在以下情况下,程序设置 VDL 很有用:

    • 通过硬件通道将原始群集直接写入磁盘。 这样程序就会通知文件系统:该范围包含可以返回给用户的有效数据。

    • 在性能出现问题时创建大型文件。 这避免了在创建或扩展文件时用多个零填充文件所花费的时间。

Examples

To find files that are owned by scottb on drive C, type:

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

To set the short name for the file, longfilename.txt on drive C to longfile.txt, type:

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

To set the valid data length to 4096 bytes for a file named testfile.txt on an NTFS volume, type:

fsutil file setvaliddata c:\testfile.txt 4096

若要将 NTFS 卷上的文件的范围设置为多个零以清空它,请键入:

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