在全新安装的 Windows 10 中,我想在 \Users\Public 中创建一个新文件夹,其功能与此文件夹中的所有其他文件夹相同。具体来说,我希望在 Windows 资源管理器中显示“属性-位置”选项卡和修改后的名称(即创建一个新文件夹 My3DModels,让它在资源管理器中显示为 Public My3DModels,并能够控制位置)。
当我在 Windows 资源管理器(以管理员身份运行)中查看 \Users\Public 中的文件夹时,它显示所有文件夹都名为 Public ...(即公共文档、公共视频、公共音乐等)。如果我进入命令提示符(以管理员身份运行),DIR /A /Q 命令显示它们的名称为(文档、视频、音乐) - 它还显示它们是简单文件夹,而不是符号链接或连接点。
当我在 Windows 资源管理器中查看文件夹(以管理员身份运行)并显示属性时,它们都有一个位置选项卡。如果我在 C:\Users\Public 中创建一个新文件夹(在此根目录中而不是某个子文件夹中),则新文件夹似乎是一个简单目录,没有位置选项卡。
我尝试过的事情。
- 在 Windows 资源管理器中创建一个新文件夹(以管理员身份运行)
- 使用 XCOPY /E Videos My3DModels 复制现有文件夹(如文档)(在命令提示符下(以管理员身份运行)) - 结果是一个简单的目录。
- 创建新库(使用 Windows 资源管理器(以管理员身份运行)
关于此功能如何工作的更多信息。我看到了这篇文章,它很好地解释了这些文件夹的用途和使用方法,但没有解释底层的技术细节。 从技术上讲,“公共”文件夹在 Windows 上如何运作?
答案1
“公共...”的各种显示名称通过每个文件夹中的文件分配desktop.ini
。例如,以下desktop.ini
是公共桌面:
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21799
这样,显示的文件夹名称会随着所选的显示语言而变化,而底层文件系统名称则保持不变,以方便代码工作。自定义图标也在desktop.ini
文件中指定。探索者desktop.ini
仅在设置了文件夹的属性时才处理文件夹的文件ReadOnly
。虽然默认文件夹在分配时都指定了资源引用LocalizedResourceName
,但文字字符串(不带引号,空格也可以)也可以使用:
[.ShellClassInfo]
LocalizedResourceName=Public My3DModels
您可以ReadOnly
通过打开 电源外壳窗口的位置并输入:
(gi .).Attributes += 'ReadOnly'
设置属性
- 和
(gi .).Attributes -= 'ReadOnly'
清除属性(在解决“重复文件夹名称”问题时非常有用)
不要被只读 复选框在文件夹中特性对话,忽略它!
注意:一旦文件夹LocalizedResourceName
在其desktop.ini
文件中指定,从 Shell/Explorer 发起的任何重命名操作都将修改 desaktop.ini 文件中的分配,而不是实际的文件系统名称。
获得位置i选项卡则不同。公共/公共文件夹位置在注册表中指定为:
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\
虽然各种民众文件夹有地点选项卡特性对话框,它缺少每个用户文件夹上的允许重新定位的按钮。文本框不允许编辑。因此,即使您可以让自定义文件夹显示地点选项卡,它无法进行重新定位,您仍然必须通过注册表编辑来执行此操作。
如果您想将文件夹集成到桌面或者这台电脑,您需要创建一个可以添加到适当命名空间并将您的文件夹引用为它的目标的 CLSID。