Saturday, 26 January 2013

Copy a Directory in VB.NET

Copy a Directory in VB.NET

Copies all folders and files to destination volume/network drive with the same name as the source directory.
Sometimes, directory structure is  so nested, at that time u may get following error message.
 Message    "The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters."  
Here is the example for copying Inetpub folder to D volume with the same name.

Shared  Sub CopyDirectory(ByVal src As String, ByVal dest As String)
    Dim srcpathroot As String =  Path.GetPathRoot(src)
    Dim destpathroot As String =  Path.GetPathRoot(dest)
   'First Create all Directories/Sub directories.
    Dim dirs() As String =  Directory.GetDirectories(src,"*",SearchOption.AllDirectories)
    Dim difVolume As String
    For Each difVolume In dirs
        Dim path As String =  difVolume.Replace(srcpathroot,destpathroot)
        If Not Directory.Exists(path) Then
        End If

'Second Copy all files from Source to Destination with file overwrite.
    String()szFiles = Directory.GetFiles(src,"*",SearchOption.AllDirectories)
    Dim srcFile As String
    For Each srcFile In szFiles
        Dim destFile As String =  srcFile.Replace(srcpathroot,destpathroot)
        File.Copy(srcFile, destFile, True)
Catch ex As Exception
End Try
End Sub

Tags:Copy Directory in VB.NET,Folder Copy in VB.NET,Copy a directory to different volume,Copy Folder to USB,Copy folder with same name,Copy Directory in .NET VB.NET,Copy directory to network folder,Copy Directory to UNC folder,Copy Entire Folder,Copy Directory with contents