文件点播
我们必须准备类似于Windows上的OneDrive的应用程序-存储在云中的文件的同步列表和所选文件的同步。
在调查过程中,我们发现了一个非常好的库,可以从C# -ShellBoost管理Windows中的按需文件。
将云上文件列表为本地文件
显示本地文件夹x1c 0d1x中的按需文件列表
将文件夹显示为空间扩展名
使用ShellBoost,我们可以以一种非常酷的方式同步文件。我们可以显示同步状态,我们可以像普通文件一样执行所有操作,此外,我们可以同步项目或将其从同步中删除。
不幸的是,我们遇到了一些限制
文件上下文菜单项问题
我们无法向未同步的文件添加自定义操作。我使用SharpShell来管理文件上的附加上下文菜单项-它可以工作
的
但在不同步的文件上,它不起作用。
的
OneDrive支持自定义上下文菜单项
OneDrive能够添加自定义菜单项
PowerToys可以添加自定义上下文菜单项
不知何故,PowerToys能够将自定义菜单项添加到我们未同步的文件中
示例
下面是一个repo,示例为https://github.com/m4tchl0ck/ShellBoost-My-Samples
1条答案
按热度按时间stszievb1#
正如在注解中提到的,在同步根上实现上下文菜单的正确方法是使用一个实现。
然而,至少有一个选项可以让你的上下文菜单(使用IContextMenu)在云文件上可见,就像here和DEFAULT_FOLDER_MENU_RESTRICTIONS枚举文档中提到的那样。
在注册表中注册上下文菜单处理程序时,在
HKCU\CLSID\{YOUR-HANDLER-CLSID}
处向处理程序注册添加ContextMenuOptIn
值。举例来说:
字符串
上下文菜单现在也将显示在脱水的占位符文件上。