2017-06-28 1 views
0

mit der folgenden URLSharePoint online (O365): Wie erhält man eine übergeordnete URL?

https://test.sharepoint.com/shared%20documents/MyFolder1/myImg1.jpeg 

Ich brauche einen Antrag auf Eltern-URL dieses Artikels zu senden (in diesem speziellen Fall Bild) und eine Antwort zu erhalten:

https://test.sharepoint.com/shared%20documents/MyFolder1/ 

Ist ein solcher Antrag vorliegt Wenn Sie eine CSOM- oder Office 365-Aktivitäts-API verwenden? Wo in der Dokumentation kann ich solche Beispiele finden?

+0

können Sie bitte Ihre Frage klären. Versuchen Sie, Dateien/Bilder aus bestimmten Ordnern zu erhalten? –

+0

Ich muss nur die URL des übergeordneten Elements wissen, ich versuche nicht, irgendeinen Inhalt zu bekommen. Die übergeordnete URL ist nicht immer so trivial wie in dem Beispiel, das ich angegeben habe - sie entfernt nur den Namen des Elements mit einem Schrägstrich, manchmal enthält sie zusätzliche Zeichen, die wegen des Elementtyps hinzugefügt werden, wie Layout usw. –

Antwort

0
static public string ReturnFileParentUrl(string url) 
     { 
      try 
      { 
       Uri uri = new Uri("https://XXX.sharepoint.com/"); 
       using (var ctx = GetContext(uri, "[email protected]", "password")) 
       { 

        Microsoft.SharePoint.Client.File item = ctx.Web.GetFileByServerRelativeUrl(url); 

        ctx.Load(item); 
        ctx.ExecuteQuery(); 

        Console.WriteLine("file: {0}\n", item.Name); 
        Console.WriteLine("Type: {0}\n", item.TypedObject.ToString()); 
        if (item.TypedObject.ToString() == "Microsoft.SharePoint.Client.File") //To check if there is a better way to check if the item is a file 
         if (item.ServerObjectIsNull != true) 
         { 
          ctx.Load(item, i => i.ListItemAllFields); 
          ctx.ExecuteQuery(); 
          var folder = ctx.Web.GetFolderByServerRelativeUrl((string)item.ListItemAllFields["FileDirRef"]); 
          ctx.Load(folder); 
          ctx.ExecuteQuery(); 
          Console.WriteLine("parent relative url {0}\n", folder.ServerRelativeUrl); 
          return folder.ServerRelativeUrl; 
         } 

        return null; 
       } 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine(ex.Message); 
      } 
      return null; 
     } 
Verwandte Themen