开发者

VB 2010: How to copy all subfolders of a folder to another folder?

I got a question in Visual B开发者_如何学Casic 2010: How can I copy all subfolders (only the subfolders, not the main folder) into another folder?


You need to recursively iterate through all the files and folders and copy them. This method should do the job for you:

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


System.IO has two classes that you can use in a recursive fashion to do this all from code.

  • DirectoryInfo
  • FileInfo

DirectoryInfo has two methods that are relevant:

  • GetDirectories
  • GetFiles

FileInfo has a CopyTo method

Given those objects and methods and a bit of creative recursion you should be able to copy the stuff fairly easily.


This seems to be the simplest solution:

For Each oDir In (New DirectoryInfo("C:\Source Folder")).GetDirectories()
    My.Computer.FileSystem.CopyDirectory(oDir.FullName, "D:\Destination Folder", overwrite:=True)
Next oDir


1 Line:

My.Computer.FileSystem.CopyDirectory(txtSourceDirectory.Text, txtDestinationDirectory.Text, True)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜