为什么短文件名 (8.3) 是在一个分区中创建的,而不是在同一磁盘的另一个分区中创建的?

Apo*_*los 0 windows ntfs filesystems filenames windows-10

我运行的是 64 位 Windows 10 PC,其单个硬盘有两个 NTFS 分区,C: 和 D:。短文件名 (8.3) 在 C: 中创建,但不在 D: 中创建

  1. 这怎么可能,以及
  2. 我也可以在 D: 中启用短文件名吗?

phu*_*clv 6

8.3 名称创建的全局设置由键控制HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation。默认值为 2,这意味着允许每个卷拥有自己的本地 8.3 名称创建设置。该键的可用设置是:

  • 0:为系统上的所有卷启用 8dot3 名称创建。
  • 1:禁用系统上所有卷的 8dot3 名称创建。
  • 2:在每个卷的基础上设置 8dot3 名称创建。
  • 3:对除系统卷以外的所有卷禁用 8dot3 名称创建。

当值为 2 时,可以通过fsutil 8dot3name命令获取/设置每个卷的设置

C:\WINDOWS\system32>fsutil 8dot3name query
The registry state is: 2 (Per volume setting - the default).

C:\WINDOWS\system32>fsutil 8dot3name query c:
The volume state is: 0 (8dot3 name creation is enabled).
The registry state is: 2 (Per volume setting - the default).

Based on the above settings, 8dot3 name creation is enabled on c:
Run Code Online (Sandbox Code Playgroud)

这怎么可能

如上所述,该设置不适用于整个系统中的所有分区。这意味着有人在 D: 中禁用了 8.3 名称创建。随着fsutil你甚至可以添加/删除8.3名称与一个特定的文件fsutil file setshortname/fsutil 8dot3name strip无论系统/音量设置,使另一种可能,但不太可能的解决方案是,所有的8.3名称已被删除,新文件还没有被添加到卷

由于 Windows 8 和 Windows Server 2012新格式化的卷将默认禁用 8.3 名称生成。这可能是您 PC 中的情况

事实上,当您格式化新数据卷时,最新版本的 Windows Server 甚至不启用 8.3 命名。

https://docs.microsoft.com/en-us/archive/blogs/josebda/windows-server-2012-file-server-tip-disable-8-3-naming-and-strip-those-short-names-也


我也可以在 D: 中启用短文件名吗?

是的当然。要启用 D 上的设置:运行

fsutil 8dot3name set D: 0
Run Code Online (Sandbox Code Playgroud)

并禁用它

fsutil 8dot3name set D: 1
Run Code Online (Sandbox Code Playgroud)

有关的:

  • @Apostolos 不,你找到了密钥,但你没有真正回答你的任何问题,并且仍然想知道 *“如何一个分区具有短名称而另一个分区没有?注册表项适用于所有 NTFS 文件系统!”,“如何这是可能的,我也可以在 D: 中启用短文件名吗?"*.因为真正的答案是使用“fsutil”而不是全局注册表项 (2认同)