Microsoft KB Archive/290111

= How To Move or Copy Folder Items with WebDAV =

Article ID: 290111

Article Last Modified on 2/22/2007

-

APPLIES TO


 * Microsoft Exchange 2000 Server Standard Edition
 * Microsoft XML Parser 2.0
 * Microsoft XML Core Services 4.0
 * Microsoft XML Core Services 4.0
 * Microsoft Visual Basic 6.0 Enterprise Edition
 * Microsoft Visual Basic 6.0 Professional Edition

-



This article was previously published under Q290111



SUMMARY
This article demonstrates how to move or copy folder items by using Web Distributed Authoring and Versioning (WebDAV) and Microsoft Visual Basic (VB).



MORE INFORMATION
A typical move or copy request resembles the following: Move SourceURL Destination DestinationURL The following sample demonstrates how to move or copy an item, Test1, from Folder1 to Folder2.

NOTE: You can only copy or move objects within the same store.  In Exchange 2000 Server, under All Public Folders, create two public folders and name them Folder1 and Folder2. In Folder1, create an item and name it Test1. In VB, create a Standard EXE project. Form1 is created by default. Add a command button to Form1 and name it Command1. Add a reference to the MSXML object library.  Paste the following code in the code section of Form1.

NOTE: Change e2kServer in the code to the name of your Exchange server. Private Sub Command1_Click sSourceURL = &quot;http://e2kServer/Public/Folder1/Test1.eml&quot; 'TO DO sDestinationURL = &quot;http://e2kServer/Public/Folder2/Test1.eml&quot; 'TO DO 'CopyMoveUsingWebDav sSourceURL, sDestinationURL, True 'To Copy CopyMoveUsingWebDav sSourceURL, sDestinationURL, False 'To MoveEnd Sub

Sub CopyMoveUsingWebDav(ByVal sSourceURL As String, ByVal sDestinationURL As String, ByVal bCopy As Boolean) ' dim for xml 2.0 'Dim XMLreq As MSXML.XMLHTTPRequest ' dim for xml 4.0 Dim XMLreg As MSXML2.XMLHTTP Dim sReq As String

'Use XML to create the new folder. Set XMLreq = CreateObject(&quot;Microsoft.xmlhttp&quot;) If bCopy Then XMLreq.open &quot;COPY&quot;, sSourceURL, False Else XMLreq.open &quot;MOVE&quot;, sSourceURL, False End If XMLreq.setRequestHeader &quot;Destination&quot;, sDestinationURL

'Send the request to set the search criteria. XMLreq.send 'Display the results. If (XMLreq.Status >= 200 And XMLreq.Status < 300) Then Debug.Print &quot;Success! &quot; & &quot;Results = &quot; & XMLreq.Status & &quot;: &quot; & XMLreq.statusText ElseIf XMLreq.Status = 401 then Debug.Print &quot;You don't have permission to do the job! Please check your permissions on this item.&quot; Else Debug.Print &quot;Request Failed. Results = &quot; & XMLreq.Status & &quot;: &quot; & XMLreq.statusText End If

End Sub  Run the project.NOTE: If you run the code to move Test1 (bCopy = false), make sure that you have at least Editor permissions in Exchange on Test1.</ol>

<div class="references_section">