devxlogo

CopyDirectory – Copy a directory

CopyDirectory – Copy a directory

' Copies a source directory to the destination directory.' The last parameter specifies whether the files already present in the' destination directory will be overwritten' - Note: requires Imports System.IO' - Usage: CopyDirectory("C:Misc", "D:MiscBackup")Sub CopyDirectory(ByVal SourcePath As String, ByVal DestPath As String, _    Optional ByVal Overwrite As Boolean = False)  Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)  Dim DestDir As DirectoryInfo = New DirectoryInfo(DestPath)  ' the source directory must exist, otherwise throw an exception  If SourceDir.Exists Then    ' if destination SubDir's parent SubDir does not exist throw an exception    If Not DestDir.Parent.Exists Then      Throw New DirectoryNotFoundException _          ("Destination directory does not exist: " + DestDir.Parent.FullName)    End If    If Not DestDir.Exists Then      DestDir.Create()    End If    ' copy all the files of the current directory    Dim ChildFile As FileInfo    For Each ChildFile In SourceDir.GetFiles()      If Overwrite Then        ChildFile.CopyTo(Path.Combine(DestDir.FullName, ChildFile.Name), True)      Else        ' if Overwrite = false, copy the file only if it does not exist        ' this is done to avoid an IOException if a file already exists        ' this way the other files can be copied anyway...        If Not File.Exists(Path.Combine(DestDir.FullName, ChildFile.Name)) Then          ChildFile.CopyTo(Path.Combine(DestDir.FullName, ChildFile.Name), _              False)        End If      End If    Next    ' copy all the sub-directories by recursively calling this same routine    Dim SubDir As DirectoryInfo    For Each SubDir In SourceDir.GetDirectories()      CopyDirectory(SubDir.FullName, Path.Combine(DestDir.FullName, _          SubDir.Name), Overwrite)    Next  Else    Throw New DirectoryNotFoundException("Source directory does not exist: " + _        SourceDir.FullName)  End IfEnd Sub

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist