Проверьте, существует ли файл / URL на Sharepoint Online - PullRequest
0 голосов
/ 06 февраля 2020

Я ищу способ проверить, существует ли файл в SharePoint Online.

Наш исходный ресурс Sharepoint был перемещен в Sharepoint Online, поскольку мой код не работает.

Существующие рекомендации не работают. Я искал решение (Google) в течение нескольких недель безуспешно.

HTTPRequest всегда возвращает .Status="OK" и .StatusText="200" даже для файла, который не существует в папке SharePoint.

Приведенный ниже код показывает то, что я пробовал до сих пор (во многих комбинациях, но результат всегда один и тот же)

Sub Test_WinHTTPRequest()

    Set HttpRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
    With HttpRequest
        .Open "GET", "https://company.sharepoint.com/sites/wt-teams-CServices/WAN%20Fin/FY19-20/test_file.xlsx"
'       .Open "GET", "http://company.sharepoint.com/sites/wt-teams-CServices/WAN%20Fin/FY19-20/test_file123.xlsx"
'       .Open "GET", "http://company.sharepoint.com/sites/wt-teams-CServices/WAN Fin/FY19-20/test_file123.xlsx"
        .Send
        st = .Status
        stt = .StatusText
        rt = .ResponseText
    End With
    Debug.Print rt, st, stt

End Sub

Та же ситуация с объектом MSXML2.XMLHTTP60

Какое бы имя файла я ни использовал в URL, HTTPRequest всегда возвращает «URL существует». .ResponceText возвращает огромный вывод с некоторым кодом HTML, который в точности совпадает с любым именем файла, которое я использовал в URL.

В Inte rnet Explorer или Windows explorer, если я вставлю URL с существующее имя файла, возвращает ошибку, как я ожидал.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Вот функция для проверки, существует ли URL или нет ...

Private Function urlExists(url As String) As Boolean ' Reference to Microsoft XML V3 required
    Dim Request As New MSXML2.XMLHTTP30
    On Error Resume Next
    With Request
        .Open "GET", url, False
        .Send
        urlExists = IIf(.Status = 200, True, False)
    End With
End Function
0 голосов
/ 07 февраля 2020

Рассматривали ли вы использование методов SharePoint REST Api для получения файла из папки по URL-адресу сервера? что-то вроде:

https://{site_url}/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files('{file_name}')/$value

для дополнительных запросов вызовов, которые могли бы удовлетворить Ваши потребности, пожалуйста, проверьте -> ссылка

Я надеюсь, что это поставит Вас на правильный путь :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...