我正在寻找一种方法来为缓存到本地 OneDrive 文件夹的文件派生 OneDrive 文件 URL?我唯一能想到的就是为我拥有的每个 OneDrive 文件夹硬编码一些根 URL,但这看起来很讨厌!
有谁知道可以根据本地文件路径查询 URL 的任何 OneDrive 客户端 API?
我的用例:
我正在尝试附加并打开 Excel 工作簿的实例。我曾经能够做到这一点 Marshal.BindToMoniker(_workbookPath);
但是,似乎 Excel 现在正在 ROT 中而不是本地文件路径中注册 OneDrive URL。这发生在为 Excel 2016 带来新的自动保存功能的更新中,我认为这似乎是我现有代码崩溃的时候。
这里有一个类似的悬而未决的问题:C# OneDrive for Business / SharePoint: get server path from locally synced file
最佳答案
可能想改用下面的键:
HKEY_CURRENT_USER\Software\SyncEngines\Providers\OneDrive
这包括以下注册表值: UrlNamespace:(SharePoint 站点 URL) MountPoint:(本地驱动位置)
它似乎确实包含不再同步的旧值 - 但不应该太难检查
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Accounts\Business1\ScopeIdToMountPointPathCache
或
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager
对于正在主动同步的路径。
关于c# - 从本地缓存文件获取 onedrive 文件 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46587062/