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

devx-admin

Share the Post: