Private Sub Button1_Click
Copy("C:\Users\Mohsen\Desktop","NewFolder","C:\Users\Mohsen\Desktop","NewFolder2",True)
End Sub
Sub Copy(DirSource As String, FileSource As String, DirTarget As String, FileTarget As String,First As Boolean)
If File.IsDirectory(DirSource, FileSource) Then
If First Then
File.MakeDir(File.Combine(DirTarget, FileTarget),FileSource)
DirTarget=File.Combine(DirTarget, FileTarget)
FileTarget=FileSource
End If
Dim sourcePath As String = File.Combine(DirSource, FileSource)
Dim targetPath As String = File.Combine(DirTarget, FileTarget)
Dim sourceFiles As List = File.ListFiles(sourcePath)
If sourceFiles.IsInitialized = False Then Return 'Return if folder is not accessible
File.MakeDir(DirTarget, FileTarget)
For Each name As String In sourceFiles
If File.IsDirectory(sourcePath, name) Then
Copy(sourcePath, name, targetPath, name,False)
Else
File.Copy(sourcePath, name, targetPath, name)
End If
Next
Else
File.Copy(DirSource, FileSource, DirTarget, FileTarget)
End If
End Sub