none
File Exists SharePoint Online RRS feed

  • Frage

  • Hallo zusammen,

    ich versuche per vb.Net zu prüfen, ob auf meinem Online SharePoint eine Datei vorhanden ist. Das Autentifizieren am SharePoint wirft keien Fehlermeldung, aber wenn ich versuche das File zu lasen bekomme ich immer die Meldung, dass die Datei nicht vorhanden ist. Ich teste es einmal mit NEtwork Credentials und einmal mit SharePointOnline Credentials.

    Hier mein code:

    Private Function CheckSharePointFile(url As String, Optional crd As NetworkCredential = Nothing,
                                             Optional spcrd As SharePointOnlineCredentials = Nothing) As Microsoft.SharePoint.Client.File

            CheckSharePointFile = Nothing

            Dim filename As Uri = New Uri(url)

            Dim server As String = filename.AbsoluteUri.Replace(filename.AbsolutePath, "")

            Dim serverrelative As String = filename.AbsolutePath


            Dim ctx As ClientContext = ClaimsClientContext.GetAuthenticatedContext(server)
            If IsNothing(crd) Then
                ctx.Credentials = spcrd
            Else
                ctx.Credentials = crd
            End If
            ctx.ExecuteQuery()

            Dim web As Web
            web = ctx.Web
            ctx.Load(web)
            ctx.ExecuteQuery()


            Dim file As Microsoft.SharePoint.Client.File

            file = web.GetFileByServerRelativeUrl(serverrelative)
            ctx.Load(file)
            ctx.ExecuteQuery()
            CheckSharePointFile = file
        End Function

    Hat jemand eine Idee wo hier der Fehler liegt?

    Vielen Dank im Voraus.

    Viele Grüße

    Frederik Handschuh

    Samstag, 2. November 2019 18:40

Antworten

  • Hi Frederik,
    warum es bei Dir Probleme gibt, kann ich wegen fehlender weiterer Info von Dir nicht sagen.

    Ich habe Deinen Code mal in eine Konsolenanwendung kopiert (s. nachfolgende Demo), etwas angepasst und es läuft problemlos. Server-Url, Anmeldename, Kennwort im Klartext stehen in der Demo in den Einstellungen. In der Demo wird im Falle des Fehlens der Datei eine Ausnahme geworfen ("Datei nicht gefunden").

    Imports System.Net
    Imports System.Security
    Imports Microsoft.SharePoint.Client
    
    Module Module01
    
      Sub Main()
        Try
          Call (New Demo).Execute()
        Catch ex As Exception
          Console.WriteLine(ex.ToString)
        End Try
        Console.WriteLine("Continue enter key")
        Console.ReadKey()
      End Sub
    
      Friend Class Demo
        Friend Sub Execute()
    
          Dim pw As New SecureString()
          For Each c As Char In My.Settings.password.ToCharArray
            pw.AppendChar(c)
          Next
    
          Dim result = CheckSharePointFile(My.Settings.onlineWebUrl & "/Shared%20Documents/Doc.docx",
                                           Nothing, New SharePointOnlineCredentials(My.Settings.userName, pw))
          Console.WriteLine(result.Name)
        End Sub
    
        Private Function CheckSharePointFile(url As String,
                                             Optional crd As NetworkCredential = Nothing,
                                             Optional spcrd As SharePointOnlineCredentials = Nothing) _
                                             As Microsoft.SharePoint.Client.File
    
          Dim filename As Uri = New Uri(url)
    
          Dim server As String = filename.AbsoluteUri.Replace(filename.AbsolutePath, "")
    
          Dim serverrelative As String = filename.AbsolutePath
    
          Using ctx As New ClientContext(server) With {.Credentials = If(IsNothing(crd), spcrd, crd)}
            Dim web = ctx.Web
            ctx.Load(Web)
            Dim file = web.GetFileByServerRelativeUrl(serverrelative)
            ctx.Load(file)
            ctx.ExecuteQuery()
            Return file
          End Using
        End Function
      End Class
    
    End Module


    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Sonntag, 3. November 2019 15:28