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 卷上文件的文件 ID。
<volume> 将卷指定为驱动器名称,后跟冒号。
queryfilenamebyid 显示 NTFS 卷上指定文件 ID 的随机链接名称。 由于文件可以有多个指向该文件的链接名称,因此不能保证查询文件名后会提供哪个文件链接。
<fileid> 指定 NTFS 卷上文件的 ID。
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