【问题标题】:Extracting folder/sub folder name from SharePoint document library URL从 SharePoint 文档库 URL 中提取文件夹/子文件夹名称
【发布时间】:2018-07-03 15:13:06
【问题描述】:

我是 Sharepoint 的新手,目前正在使用 Sharepoint Online。我需要在 C# 中的共享点文档库下检索文件。

我们有几个文档库网址如下:

  1. https://customer1.sharepoint.com/DocumentFolder/Forms/AllItems.aspx
  2. https://customer2.sharepoint.com/sites/站点名称/DocumentFolder/SubFolder/Forms/AllItems.aspx

如果是上面的 URL 1,我需要提取 DocumentFolder 名称,如果是 URL 2,我需要提取 DocumentFolder/SubFolder 名称

使用Sharepoint REST 服务,然后我想列出 DocumentFolder 下的文件:

http://siteurl/_api/web/GetFolderByServerRelativeUrl('/DocumentFolder')

我面临的挑战是为上述 URL 提取 DocumentFolder,因为我找不到任何 API/方法调用来提取 DocumentFolder。我可以在 url 上尝试正则表达式,但它会很有帮助,如果有正确的方法来提取 DocumentFolder/SubFolder,那将会很有帮助。

【问题讨论】:

    标签: c# sharepoint-online


    【解决方案1】:

    我们可以使用 CSOM C# 和 CAML 查询来实现,将视图设置为 ,从而从根文件夹及其子文件夹中获取文档。

    string targetSiteURL = @"https://xxx.sharepoint.com/sites/sitename";
    
    var login = "xxx@xxx.onmicrosoft.com";
    var password = "xxx";
    
    var securePassword = new SecureString();
    
    foreach (char c in password)
    {
        securePassword.AppendChar(c);
    }
    SharePointOnlineCredentials onlineCredentials = new SharePointOnlineCredentials(login, securePassword);
    
    ClientContext ctx = new ClientContext(targetSiteURL);
    ctx.Credentials = onlineCredentials;
    
    List list = ctx.Web.Lists.GetByTitle("Documents");
    CamlQuery camlQuery = new CamlQuery();
    camlQuery.ViewXml = @"<View Scope='RecursiveAll'><Query></Query></View>";
    camlQuery.FolderServerRelativeUrl = folder.ServerRelativeUrl;
    ListItemCollection listItems = list.GetItems(camlQuery);
    clientContext.Load(listItems);
    clientContext.ExecuteQuery();
    
    foreach (var item in listItems)
    {
         if (item.FileSystemObjectType == FileSystemObjectType.File)
         {
             // This is a File
         }
         else if (item.FileSystemObjectType == FileSystemObjectType.Folder)
         {
             // This is a  Folder
         }
    }
    

    更多信息供您参考:

    http://www.sharepointpals.com/post/How-to-Get-All-the-Files-within-a-Folder-using-CAML-Query-in-SharePoint-Office-365-using-C-CSOM

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 2017-10-18
      相关资源
      最近更新 更多