如何为UWP应用关联文件夹右键动词(Windows右键操作)而非仅文件扩展名,并在应用清单中配置文件夹右键菜单
如何为UWP应用配置文件夹右键菜单
我明白你的困惑——UWP关联文件夹右键菜单的配置确实不像文件扩展名那样直观,毕竟Win32的注册表方式和UWP的清单配置逻辑差异不小。下面是具体的实现方法,能帮你把右键动词关联到文件夹上:
核心配置:在应用清单中添加文件夹关联扩展
你需要在Package/Applications/Application/Extensions节点下新增一个针对文件夹的windows.fileExplorerContextMenu扩展,关键是用特殊的folder标识符来指定关联对象是文件夹,而不是具体的文件扩展名。
完整示例配置
结合你已有的压缩文件配置,最终的清单片段会是这样:
<Extensions> <!-- 你已有的压缩文件右键菜单配置 --> <uap:Extension Category="windows.fileExplorerContextMenu"> <uap:FileExplorerContextMenu> <uap:SupportedFileTypes> <uap:FileType>.zip</uap:FileType> <uap:FileType>.rar</uap:FileType> </uap:SupportedFileTypes> <uap2:SupportedVerbs> <uap3:Verb Id="listfilesummary" Parameters=""%1"" MultiSelectModel="Player">File Summary</uap3:Verb> </uap2:SupportedVerbs> </uap:FileExplorerContextMenu> </uap:Extension> <!-- 新增的文件夹右键菜单配置 --> <uap:Extension Category="windows.fileExplorerContextMenu"> <uap:FileExplorerContextMenu> <uap:SupportedFileTypes> <!-- 特殊标识符"folder"表示关联所有文件夹 --> <uap:FileType>folder</uap:FileType> </uap:SupportedFileTypes> <uap2:SupportedVerbs> <!-- 可以复用已有动词ID,也可以新建,根据你的业务逻辑调整 --> <uap3:Verb Id="listfoldersummary" Parameters=""%1"" MultiSelectModel="Player">Folder Summary</uap3:Verb> </uap2:SupportedVerbs> </uap:FileExplorerContextMenu> </uap:Extension> </Extensions>
关键细节说明
folder标识符:这是UWP用来指定关联文件夹的特殊值,不同于具体的文件扩展名,它会让右键菜单出现在所有文件夹的右键菜单中。- 多选处理:你设置的
MultiSelectModel="Player"表示所有选中的文件夹会通过同一个应用实例处理,%1会被替换为所有选中的文件夹路径(每个路径用引号包裹,空格分隔),你的应用需要支持解析多个参数。如果希望每个文件夹打开一个实例,可以把值改成Document。 - 文件系统权限:如果你的应用需要访问任意文件夹(而非仅应用沙箱内的文件夹),需要在清单的
Capabilities节点中声明broadFileSystemAccess权限,并且在Windows设置的「隐私和安全性」→「文件系统」中开启该应用的权限:<Capabilities> <Capability Name="internetClient" /> <uap:Capability Name="broadFileSystemAccess" /> </Capabilities>
生效注意事项
配置完成后重新部署应用,有时候右键菜单不会立刻显示,你可以尝试:
- 重启Windows资源管理器(任务管理器中找到「Windows资源管理器」,右键选择「重启」)
- 注销当前用户后重新登录
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

