2011-04-02 100 views

回答

12

您需要递归遍历所有文件和文件夹并复制它们。这种方法为你做这项工作:

Public Sub CopyDirectory(ByVal sourcePath As String, ByVal destinationPath As String) 
    Dim sourceDirectoryInfo As New System.IO.DirectoryInfo(sourcePath) 

    ' If the destination folder don't exist then create it 
    If Not System.IO.Directory.Exists(destinationPath) Then 
     System.IO.Directory.CreateDirectory(destinationPath) 
    End If 

    Dim fileSystemInfo As System.IO.FileSystemInfo 
    For Each fileSystemInfo In sourceDirectoryInfo.GetFileSystemInfos 
     Dim destinationFileName As String = 
      System.IO.Path.Combine(destinationPath, fileSystemInfo.Name) 

     ' Now check whether its a file or a folder and take action accordingly 
     If TypeOf fileSystemInfo Is System.IO.FileInfo Then 
      System.IO.File.Copy(fileSystemInfo.FullName, destinationFileName, True) 
     Else 
      ' Recursively call the mothod to copy all the neste folders 
      CopyDirectory(fileSystemInfo.FullName, destinationFileName) 
     End If 
    Next 
End Sub 
+1

哇!这绝对有效!非常感谢你!!你保存了晚上;) – 2011-04-02 21:02:34

+0

不客气:D – 2011-04-02 21:15:22

2

System.IO有,你可以在一个递归的方式使用做这一切从代码两班。

  • 的DirectoryInfo
  • 的FileInfo

DirectoryInfo中有两个方法是相关的:

  • GetDirectories
  • 的GetFiles

FileInfo的有CopyTo方法

鉴于这些对象和方法以及一些创造性递归,您应该能够相当容易地复制这些东西。

相关问题