之所以会跟大家提 Windows 10 中文件和文件夹(名称)大小写,是因为最近遇到了一个比较棘手的问题:由于 Linux 文件(夹)是区分大小写的,而 Windows 10 默认是不区分大小写的。所以,尽管通过 WSL 现在可以在 Windows 10 中运行多个 Linux 发行版,但在处理是否区分文件名大小写时,就会变得比较麻烦。
简单一点来说就是:Linux 系统可以在同一路径下同时建立 ABC 和 abc 这两个区分大小写的子文件夹,而如果在 Windows 10 中这么搞就会提示重名而无法创建成功。
为了克服这一限制,微软从 Windows 10 Version 1803 更新开始,为 NTFS 文件系统新增了一个 SetCaseSensitiveInfo 标志。您可以有选择的为所需文件夹启用此 flag,之后 NTFS 文件系统就会针对该文件夹将其子文件视为区分大小写。
一旦为文件夹打上 SetCaseSensitiveInfo flag,不仅可以在使用 Linux Console 时处理区分大小写的文件,更重要的是,它还允许其它 Windows 应用程序(如 Microsoft Word 或 Notepad 等)也能正常打开不同大小写文件名的电子文档。
下面系统极客就为大家介绍:如何在升级 Windows 10 Version 1803 后,使用 fsutil.exe 命令行工具启用或禁用文件夹级别的「大小写区分」支持。
以下方法仅适用于在启用了 WSL 并已经在使用 Linux Console 的系统上使用。
在 Windows 10 中启用文件夹区分大小写支持
从 Windows 10 Version 1803 开始,您可以使用以下步骤在文件夹级别启用区分大小写:
1 在开始菜单中搜索 cmd——在「命令提示符」上右击选择「以管理员身份运行」——打开「管理员:命令提示符」工具
2 执行如下命令就可以将指定文件夹的内容视为区分大小写:
fsutil file SetCaseSensitiveInfo c:\sysgeek enable
完成上述步骤之后,在文件夹内,现在就可以使用相同名称但不同的大小写来读取或创建文件和文件夹,NTFS 会将它们视为完全不同的文件。
由于 Windows 10 目前还没有全局启用区分大小写的方法,如果您需要在多个文件夹位置处理区分大小写的文件,则需要在其余文件夹上重复相同的步骤。
在 Windows 10 中禁用大小写区分支持
如果您需要在某个特定文件上禁用大小写区分,必需先使用唯一名称重命名文件和文件夹;或者将内容移至另一个支持大小写的文件夹当中;或者删除该文件夹中的内容,然后再执行以下步骤:
1 在开始菜单中搜索 cmd——在「命令提示符」上右击选择「以管理员身份运行」——打开「管理员:命令提示符」工具
2 执行如下命令就可以禁用特定文件夹的大小写区分支持:
fsutil file SetCaseSensitiveInfo c:\sysgeek disable
在 Windows 10 中查看文件夹是否支持区分大小写
最后顺带提上一句,使用如下命令可以查看特定文件夹是否支持区分大小写:
fsutil file queryCaseSensitiveInfo