How to copy a Folder/Directory recursive in C# and VB.NET.
Sample C#
public void RecursiveFolderCopy(string sourceDirectory, string destinationDirectory, bool recursive) { var dir = new DirectoryInfo(sourceDirectory); var dirs = dir.GetDirectories(); if (!dir.Exists) { throw new DirectoryNotFoundException( String.Format("Source directory {0} does not exist!", sourceDirectory)); } if (!Directory.Exists(destinationDirectory)) { Directory.CreateDirectory(destinationDirectory); } var files = dir.GetFiles(); foreach (var file in files) { var temppath = Path.Combine(destinationDirectory, file.Name); file.CopyTo(temppath, false); } if (!recursive) { return; } foreach (var subdir in dirs) { var temppath = Path.Combine(destinationDirectory, subdir.Name); RecursiveFolderCopy(subdir.FullName, temppath, recursive); } }
Sample VB.NET
Public Sub RecursiveFolderCopy(ByVal sourceDirectory As String, ByVal destinationDirectory As String, ByVal recursive As Boolean) Dim dir As var = New DirectoryInfo(sourceDirectory) Dim dirs As var = dir.GetDirectories If Not dir.Exists Then Throw New DirectoryNotFoundException(String.Format("Source directory {0} does not exist!", sourceDirectory)) End If If Not Directory.Exists(destinationDirectory) Then Directory.CreateDirectory(destinationDirectory) End If Dim files As var = dir.GetFiles For Each file As var In files Dim temppath As var = Path.Combine(destinationDirectory, file.Name) file.CopyTo(temppath, false) Next If Not recursive Then Return End If For Each subdir As var In dirs Dim temppath As var = Path.Combine(destinationDirectory, subdir.Name) RecursiveFolderCopy(subdir.FullName, temppath, recursive) Next End Sub
RT @CodeSnippetsNET: How to copy a Folder/Directory recursive in C# and http://t.co/8NYPvKyVOV http://t.co/EL6wQRKUCi