Como: Copiar pastas

Este exemplo demonstra como utilizar classes de E/S para copiar uma pasta de um local para outro.Nesse exemplo, o usuário pode especificar se deseja copiar também as subpastas.Se os subdiretórios forem copiados, o método, nesse exemplo, os copia recursivamente, chamando a si próprio em cada subdiretório subsequente, até que não haja mais o que copiar.

Exemplo

Imports System
Imports System.IO

Class DirectoryCopyExample

    Shared Sub Main()
        DirectoryCopy(".", ".\\temp", True)
    End Sub 'Main

    Private Shared Sub DirectoryCopy( _
        ByVal sourceDirName As String, _
        ByVal destDirName As String, _
        ByVal copySubDirs As Boolean)

        Dim dir As DirectoryInfo = New DirectoryInfo(sourceDirName)
        Dim dirs As DirectoryInfo() = dir.GetDirectories()

        ' If the source directory does not exist, throw an exception.
        If Not dir.Exists Then
            Throw New DirectoryNotFoundException( _
                "Source directory does not exist or could not be found: " _
                + sourceDirName)
        End If

        ' If the destination directory does not exist, create it.
        If Not Directory.Exists(destDirName) Then
            Directory.CreateDirectory(destDirName)
        End If

        ' Get the file contents of the directory to copy.
        Dim files As FileInfo() = dir.GetFiles()

        For Each file In files

            ' Create the path to the new copy of the file.
            Dim temppath As String = Path.Combine(destDirName, file.Name)

            ' Copy the file.
            file.CopyTo(temppath, False)
        Next file

        ' If copySubDirs is true, copy the subdirectories.
        If copySubDirs Then

            For Each subdir In dirs

                ' Create the subdirectory.
                Dim temppath As String = _
                    Path.Combine(destDirName, subdir.Name)

                ' Copy the subdirectories.
                DirectoryCopy(subdir.FullName, temppath, copySubDirs)
            Next subdir
        End If
    End Sub
End Class

Consulte também

Tarefas

Como: Criar uma listagem de diretório

Conceitos

Arquivo básico de E/S

Tarefas comuns de E/S