Copy a directory

  • Thread starter Thread starter JasonSelf
  • Start date Start date
J

JasonSelf

How would I copy a directory(this does have things in it if that
matters), for the sake of this example "C:\orig" to a new location
"C:\dest" The code I have written keeps giving me an error.


dim origdir as string
dim destdir as string
origdir = "C:\orig"
destdir = "C:\dest"
filecopy origdir, destdir

I have also tired ending the dir strings with backslashes and that
doesn't seem to work either.

Thanks in advance for any help,
Jason Self
 
To do this kind of thing you need SHELL commands. Suggest you put your DOS
commands into a .bat file and call the file from VBA:

t = Shell("command.com /c yourfile.bat")
 
Hi Jason Self,
How would I copy a directory(this does have things in it if that
matters), for the sake of this example "C:\orig" to a new location
"C:\dest" The code I have written keeps giving me an error.

One option is to use the FileSystemObject:

Public Function gbCopyFolder(rsSourcePath As String, rsDestPath _
As String, Optional rbOverwrite As Boolean = False) As Boolean
Dim fso As Object

On Error GoTo ErrHandler

Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFolder rsSourcePath, rsDestPath, rbOverwrite

gbCopyFolder = True

ExitRoutine:
Set fso = Nothing
Exit Function
ErrHandler:
Resume ExitRoutine
End Function

--
Regards,

Jake Marx
MS MVP - Excel
www.longhead.com


[please keep replies in the newsgroup - email address unmonitored]
 
Jason,
My interpretation is that you want a copy of the folder installed in
the same directory with a new name.

'-------------------------------
Sub CopyFolder()
'Jim Cone - San Francisco, USA
'Requires a project reference to the "Microsoft Scripting Runtime" library.
'Copies folder, renames it and installs it in same directory.

Dim objFSO As Scripting.FileSystemObject
Dim objFolder As Scripting.Folder
Set objFSO = New Scripting.FileSystemObject

'copy folder to the temp file.
objFSO.CopyFolder "C:\orig", "C:\WINDOWS\Temp\"

'rename the copied folder.
Set objFolder = objFSO.GetFolder("C:\WINDOWS\Temp\orig")
objFolder.Name = "dest"

'move the copied folder back to the original directory.
objFSO.MoveFolder objFolder, "C:\"

Set objFolder = Nothing
Set objFSO = Nothing
End Sub
'-------------------------------


<[email protected]>
wrote in message

How would I copy a directory(this does have things in it if that
matters), for the sake of this example "C:\orig" to a new location
"C:\dest" The code I have written keeps giving me an error.

dim origdir as string
dim destdir as string
origdir = "C:\orig"
destdir = "C:\dest"
filecopy origdir, destdir
I have also tired ending the dir strings with backslashes and that
doesn't seem to work either.
Thanks in advance for any help,
Jason Self--
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top