Why is xmove not working? Any ideas?

  • Thread starter Thread starter Mark Stephens
  • Start date Start date
M

Mark Stephens

Hi,

I am attempting to use the DOS Shell command xmove to move all files from one folder to another. I t should be pretty straightforward but it isn't working and I am at a bit of a loss to know why?

Here is the sub:


Public Sub MoveFile(sSourceFile As String, sDestFile As String)

Shell "cmd /c xmove /y " & sSourceFile & " " & sDestFile

End Sub

Here are the inputs:

sSourcePath = ActiveWorkbook.Path & "\Outputs\*.*"
sDestinationPath = "C:\Users\User\Dropbox (Simulytics)\SOFTWARE\data preparation\c DASHBOARD DATABASE PRODUCTION\Inputs"

and here is the call:

Call MoveFile(sSourcePath, sDestinationPath)

Any ideas?

Kind regards, Mark
 
Chances are your source or destination strings have spaces in them, and
so your code is missing some double quotes. You may find it easier to
use VB's FileCopy method along with the Kill statement...

FileCopy sSourceFile, sDestFile
Kill sSourceFile

--
Garry

Free usenet access at http://www.eternal-september.org
Classic VB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion
 
Mark said:
I am attempting to use the DOS Shell command xmove to move all files
from one folder to another. I t should be pretty straightforward but it
isn't working and I am at a bit of a loss to know why?

Here is the sub:


Public Sub MoveFile(sSourceFile As String, sDestFile As String)

Shell "cmd /c xmove /y " & sSourceFile & " " & sDestFile

End Sub

Here are the inputs:

sSourcePath = ActiveWorkbook.Path & "\Outputs\*.*"
sDestinationPath = "C:\Users\User\Dropbox (Simulytics)\SOFTWARE\data
preparation\c DASHBOARD DATABASE PRODUCTION\Inputs"

and here is the call:

Call MoveFile(sSourcePath, sDestinationPath)

Any ideas?

The main problem as I see it is that "xmove" is not a standard command. (It
doesn't exist for me in Win7, 8, or 95.) Are you perhaps thinking of
"xcopy"? Or just normal "move"?

Also, as Garry pointed out, you need to "quote" the filenames. If you *need*
to do this via the shell, change the Shell line to something like this:

Shell "cmd /c xmove /y """ & sSourceFile & """ """ & sDestFile & """"

(Personally, I would do it the way Garry showed.)
 
Chances are your source or destination strings have spaces in them, and

so your code is missing some double quotes. You may find it easier to

use VB's FileCopy method along with the Kill statement...



FileCopy sSourceFile, sDestFile

Kill sSourceFile



--

Garry



Free usenet access at http://www.eternal-september.org

Classic VB Users Regroup!

comp.lang.basic.visual.misc

microsoft.public.vb.general.discussion

Thanks a lot Gary, worked like a dream:)
 
Back
Top