前言
Windows 系统中有一些非常特别的文件夹,比如 桌面
、下载
、文档
、图片
、音乐
、视频
等。
这些文件夹的特殊之处在于,它们是有翻译和图标的,在资源管理器中既可以用中文路径访问又可以用英文路径访问。
但是,有时候,我们会误删这些文件夹,误删后即使创建同名文件夹也没法恢复其原始样貌。
↑ 这里已经创建了同名文件夹,并检查确认了系统的位置配置正确指向了它,虽然各种软件都能正常识别它,但它还是失去了翻译和图标,也不再能通过中文路径访问了。
虽然失去这层皮肤不会影响任何功能,但总是有些不舒服,所以,有没有办法能够恢复这层带有翻译和图标的皮肤?
原理
事实上,这层皮肤完全是由资源管理器维护的,文件系统上只存储了原始的英文路径,其它软件也并不能通过中文路径访问它们。
资源管理器维护这些信息的方式也非常简单——通过 Desktop.ini
。
↑ 可以看到,Desktop.ini
中直接存储了该文件夹对应的图标和本地化信息。
那么,是不是在我们重新创建的文件夹中,手动创建这个 Desktop.ini
文件,就能恢复其原始皮肤呢?
答案是否定的。
Desktop.ini
只对包含“只读位”的文件夹生效,而且 ini 本身也必须是隐藏的系统文件。
所以,要怎么把文件夹变成这个样子?
- 首先,创建普通文件夹。
- 使用 powershell 执行
attrib +r <文件夹路径>
,标记只读位。 - 在文件夹中创建
Desktop.ini
文件,写入合适的内容。 - 使用 powershell 执行
attrib +s +h <Desktop.ini 路径>
,标记为隐藏的系统文件。 - 如有需要,重启一下资源管理器。
好了,皮肤回来了。
此外,我还搜集了一些特殊文件夹的 Desktop.ini
内容,附在文章末尾,方便有需要的人。
恢复奇巧
其实,手动这么恢复实在是有点太麻烦了。我们完全可以用自带的 Windows 沙盒开个干净的虚拟机,然后把所需的特殊文件夹复制出来。
复制的过程本身就会保留文件(夹)的各项属性,因此皮肤是可以正常被恢复和应用的。
附录:各个特殊文件夹的 Desktop.ini 内容
下载
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21798
IconResource=%SystemRoot%\system32\imageres.dll,-184
保存的游戏
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21814
IconResource=%SystemRoot%\system32\imageres.dll,-186
图片
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21779
InfoTip=@%SystemRoot%\system32\shell32.dll,-12688
IconResource=%SystemRoot%\system32\imageres.dll,-113
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-236
搜索
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-9031
IconResource=%SystemRoot%\system32\imageres.dll,-18
[LocalizedFileNames]
Indexed [email protected],-32820
[email protected],-32822
收藏夹
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21796
IconResource=%SystemRoot%\system32\imageres.dll,-115
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-173
文档
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770
IconResource=%SystemRoot%\system32\imageres.dll,-112
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-235
桌面
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21769
IconResource=%SystemRoot%\system32\imageres.dll,-183
联系人
[.ShellClassInfo]
LocalizedResourceName=@%CommonProgramFiles%\system\wab32res.dll,-10100
InfoTip=@%CommonProgramFiles%\system\wab32res.dll,-10200
IconResource=%SystemRoot%\system32\imageres.dll,-181
视频
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21791
InfoTip=@%SystemRoot%\system32\shell32.dll,-12690
IconResource=%SystemRoot%\system32\imageres.dll,-189
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-238
链接
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21810
IconResource=%SystemRoot%\system32\imageres.dll,-185
DefaultDropEffect=4
[LocalizedFileNames]
[email protected],-21769
[email protected],-21798
音乐
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21790
InfoTip=@%SystemRoot%\system32\shell32.dll,-12689
IconResource=%SystemRoot%\system32\imageres.dll,-108
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-237
参考资料
- https://stackoverflow.com/questions/11115770/how-does-folder-name-translation-work-in-international-windows-7-versions
- https://learn.microsoft.com/en-us/windows/win32/shell/how-to-customize-folders-with-desktop-ini
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/attrib