C# OneDrive for Business/SharePoint : get server path from locally synced file

标签 c# wpf sharepoint onedrive

我正在编写 WPF C# 应用程序,并希望获取本地同步文件的 SharePoint URL。

在 Windows 资源管理器中,用户可以右键单击同步的 OneDrive 文件夹中的文件,选择“OneDrive for Business”菜单和“复制链接”。这提供了同步文件的 SharePoint URL。有没有办法在 C# 中复制它?

目前,如果我在我的应用程序中使用 FileOpenDialog 引用该文件,我只能获得本地物理路径(例如 c:\onedrive...\file.txt)。如何使用本地同步文件获取 SharePoint URL?

最佳答案

我也在寻找一种解决方案,用于将 SharePoint URL 获取到 OneDrive 同步文件资源管理器中的文件。 我注意到您在 C:\Users\uid41890\AppData\Local\Microsoft\OneDrive\settings\Business1{GUID}.ini 下找到了 OneDrive 同步文件夹和 SharePoint GUID 之间的映射 示例:

libraryScope = 1 630c2a866d9c458b81060eff107887ed+1 5 "GUIDEs" "Documents" 4 "https://continental.sharepoint.com/teams/team_10000035" "8d4b558f-7b2e-40ba-ad1f-e04d79e6265a" e0266a43caf347238f684bab486f4e51 e0d25dcb1a014f5f86d787984f6327c2 4f86b3e3e54e42e0bb0f7a58eadf0335 0 "" 0 4cde5c00-3fe3-4162-b831-d8ef440e1593<br/> libraryFolder = 0 1 8bbfe07dfeff41cea7ab5da4a554592a+1 1558084235 "D:\DSUsers\uid41890\Continental AG\GUIDEs - General" 2 "General" bd0c1b7c-2a1f-4492-8b1b-8e152c9e0c26

您在注册表 Computer\HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Accounts\Business1\ScopeIdToMountPointPathCache 中也有此映射

从 GUID 中,您可以使用 SPWeb.GetFile(Guid) 获取路径 编辑:不幸的是,GetFile 函数似乎只在服务器端可用。

如果您可以在给定返回 SharePoint URL 的本地 OneDrive 文件路径的情况下创建独立函数,我将非常感谢您在此处分享您的解决方案。

关于C# OneDrive for Business/SharePoint : get server path from locally synced file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44416279/

相关文章:

c# - 无法检索用户的 TextBox 输入

c# - 获取对 View 模型当前实例的引用

css - Sidenav 365 在线选择元素列表显示不正确

c# - 如何比较 Sharepoint 列表项值?

c# - SQL CLR 问题 VS2010 SQL Server 2012

c# - Dapper.NET 和 IQueryable

c# - 带动态元素的 WPF 启动屏幕。如何?

sharepoint - 日期时间十六进制格式

c# - 如果异步委托(delegate)调用永远不会返回会发生什么?

wpf - 当今 WPF 中业务应用的发展趋势