Удаление файлов Sharepoint с помощью XMLHTTP

Следуя этой отличной работе, здесь: Пакетное копирование файлов на сайт SharePoint

Теперь я могу загружать свои заархивированные файлы в Sharepoint одним нажатием кнопки.

Теперь моя проблема такова: как удалить файлы, которые я загружаю, используя тот же метод?

Я немного изменил код, чтобы сохранять разные файлы в разных папках SharePoint. Образец ниже:

 
Public Sub CopyToSharePoint()

Dim xmlhttp Dim sharepointUrl Dim sharepointFolder Dim sharepointFileName Dim LstrFileName, strFilePath, strMonthYear, PstrFullfileName, PstrTargetURL As String Dim LlFileLength As Long Dim Lvarbin() As Byte Dim LvarBinData As Variant Dim fso, LobjXML As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim fldr As folder Dim f As File

'Parent Sharepoint sharepointUrl = "[SHAREPOINT PATH HERE]"

'Sets the Month%20Year strMonthYear = Format(Now(), "mmmm yyyy") & "\"

'File Path strFilePath = "[ARCHIVE DRIVE]" & strMonthYear

'Check to see if DRA for current month%20year exists If Len(Dir(strFilePath, vbDirectory)) = 0 Then MkDir "strFilePath" End If

Set LobjXML = CreateObject("Microsoft.XMLHTTP")

'Where we're uploading files from Set fldr = fso.GetFolder(strFilePath)

For Each f In fldr.Files

If Format(f.DateCreated, "dd/mm/yyyy") = Format(Now(), "dd/mm/yyyy") Then

If InStr(1, f.Name, "[FILESTRING1]", vbTextCompare) > 0 Then
sharepointFolder = "[SHAREPOINTSTRING1]/"
    ElseIf InStr(1, f.Name, "[FILESTRING2]", vbTextCompare) > 0 Then
    sharepointFolder = "[SHAREPOINTSTRING2]"
        ElseIf InStr(1, f.Name, "[DONOTUPLOADTHISFILE]", vbTextCompare) > 0 Then
        GoTo NextF:
            Else
            sharepointFolder = "[SHAREPOINTMAINFOLDER]"
End If

sharepointFileName = sharepointUrl & sharepointFolder & f.Name

PstrFullfileName = strFilePath & f.Name
LlFileLength = FileLen(PstrFullfileName) - 1

' Read the file into a byte array.
ReDim Lvarbin(LlFileLength)
Open PstrFullfileName For Binary As #1
Get #1, , Lvarbin
Close #1

' Convert to variant to PUT.
LvarBinData = Lvarbin
PstrTargetURL = sharepointUrl & sharepointFolder & f.Name

' Put the data to the server, false means synchronous.
LobjXML.Open "PUT", PstrTargetURL, False

' Отправьте файл. LobjXML.Send LvarBinData

Конец, если

NextF: Следующая f

Установить LobjXML = ничего Установить fso = ничего

Конец подпункта


person ApostlesPoem    schedule 18.10.2012    source источник
comment
Вы уже пробовали LobjXML.Open DELETE, PstrTargetURL, False LobjXML. Ничего не отправлять?   -  person Louis Ricci    schedule 18.10.2012
comment
Да, я сделал. Извините, что не добавил. Это приводит к: Ошибка времени выполнения «-2147024809 (80070057)»: параметр неверен.   -  person ApostlesPoem    schedule 18.10.2012
comment
Пример MSDN находится здесь: msdn.microsoft. com/en-us/library/ie/ms535874(v=vs.85).aspx (извиняюсь за форматирование)   -  person ApostlesPoem    schedule 19.10.2012


Ответы (1)


Я не закрыл запрос к серверу, черт возьми! Настройка его в отдельном экземпляре решила это для меня.

Я не преобразовывал имя файла в двоичный, а затем в вариантный, просто сохранил его как строку. Вы должны опустить NOTHING из последних LobjXML.SEND, данных в примере LastCoder. Добавление этого в воспроизводит ошибку времени выполнения, которую я указал выше.

Спасибо за помощь, LastCoder. Вот измененный код:


Public Sub DeleteFromSharePoint()

Dim xmlhttp
Dim sharepointUrl, sharepointFolder, sharepointFileName
Dim f, strZip As String
Dim LobjXML As Object

' Parent Sharepoint
sharepointUrl = "[SHAREPOINT URL]"

' In this test module, we're just deleting from the parent directory
sharepointFolder = ""

' Sets the report name we want to remove
f = "test"

' Sets the full .ZIP filename
' This is how reports are archived by date
strZip = f & "%20-%20" & Format(Now() - 1, "YYYY.MM.DD") & ".zip"

Set LobjXML = CreateObject("Microsoft.XMLHTTP")

    sharepointFileName = sharepointUrl & sharepointFolder & strZip

    ' Removes the data from the server, false means synchronous
    LobjXML.Open "DELETE", sharepointFileName, False

    ' Sends the request to remove the file
    LobjXML.Send

  Set LobjXML = Nothing

End Sub
person ApostlesPoem    schedule 19.10.2012