• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1292
  • Last Modified:

Is it possible in VB .Net to use XCOPY with VB variables

I am just wondering how I would add Visual Basic variables (folder path) to a xcopy command in visual basic .net.  I have the code that I have attempted to use.  I have also commented out a few ideas that I tried, but didnt work.  I am trying to get around the issue of copying the documents folder in Vista.  Those legacy folders for "My Videos, My Pictures, etc" are casuing problems copying that folder.  Any suggestions would be helpful.

Thanks,
Joe
Dim local_users As String
                ' Here is where we loop through the selected items in the listbox.
 
                For Each local_users In lstUsers.SelectedItems
 
                    ' We need to formulate the full path again to test if it exists and to copy the file.
                    'If File.Exists("c:\users\" & theSelectedFile) Then
 
                    ' Here we do a simple file.copy call where we specify the file we want and then
                    ' specify the destination where we want to go. We let the user know each file that was
                    ' copied as well.
                    Dim objShell As Object
                    objShell = CreateObject("WScript.Shell")
                    Dim path1 As String
                    Dim path2 As String
                    path1 = ("C:\Users\" & local_users & "\Documents")
                    path2 = (FolderChoiceTextBox.Text & "\" & local_users & "\Documents")
 
                    My.Computer.FileSystem.CopyDirectory("c:\users\" & local_users & "\Desktop", FolderChoiceTextBox.Text & "\" & local_users & "\Desktop")
                    My.Computer.FileSystem.CopyDirectory("c:\users\" & local_users & "\Favorites", FolderChoiceTextBox.Text & "\" & local_users & "\Favorites")
                    My.Computer.FileSystem.CopyDirectory("c:\users\" & local_users & "\Music", FolderChoiceTextBox.Text & "\" & local_users & "\Music")
                    My.Computer.FileSystem.CopyDirectory("c:\users\" & local_users & "\Pictures", FolderChoiceTextBox.Text & "\" & local_users & "\Pictures")
                    'objShell.run("xcopy c:\users\" & theSelectedFile & "\Documents", FolderChoiceTextBox.Text & "\" & theSelectedFile & "\Documents")
                    Shell("xcopy" & path1, path2)
                    MessageBox.Show("Copied: " & local_users)

Open in new window

0
lehmaj1
Asked:
lehmaj1
1 Solution
 
HooKooDooKuCommented:
At a minimum, are you including a space between the word "xcopy" and path1, or is the resulting string looking like this:

 "xcopyc:\users...

Additionally, when working with a command line, if a file name has an embedded space, the file name needs to be encloded in quotation marks:

xcopy "File with embeded space" "To File with embeded space

My suggestion is to start with a command prompt (Start/Programs/Accessories/Command Promt) and attempt to get xcopy to work from there.  Once you have the exact text for the command working at a DOS prompt, replicate that command line EXACTLY in VB.  A big help might be to assign the command to a string and then call Shell with the string variable.  That way you can use the debugger and see EXACTLY what is getting sent to the Shell command.
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now