Como: Copiar um diretório para outro diretório na Visual Basic

Use o método CopyDirectory para copiar um diretório para outro diretório. Este método copia o conteúdo do diretório, bem como o próprio diretório. Se a estrutura de destino não existir, ela será criada. Se um diretório com o mesmo nome existe no local de destino e overwrite é definida como False,o conteúdo dos dois diretórios será mesclado. Você pode especificar um novo nome para o diretório durante a operação.

Ao copiar arquivos em um diretório, exceções podem ser geradas que são causadas pelo arquivo específico, como um arquivo existente durante uma mesclagem enquanto overwrite estiver definida como False. Quando essas exceções são geradas, elas são consolidadas em uma única exceção, cuja propriedade Data contém entradas em que o caminho do arquivo ou pasta é a chave e a mensagem de exceção específica está contida no valor correspondente.

Para copiar um diretório para um diretório diferente

  • Use o método CopyDirectory, especificando nomes de diretório de origem e destino. O exemplo a seguir copia o diretório denominado TestDirectory1 para dentro de TestDirectory2, sobrescrevendo arquivos existentes.

    My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)
    

    Este exemplo de código também está disponível como um trecho de código IntelliSense. No selecionador do trecho de código, ele está localizado no File system - Processing Drives, Folders, and Files. Para obter mais informações, consulte Como: Inserir trechos de código de IntelliSense.

Programação robusta

As seguintes condições podem causar uma exceção:

  • O novo nome especificado para o diretório contém dois-pontos (:) ou de barra (\ ou /) (ArgumentException).

  • O caminho não é válido para um dos seguintes motivos: ela é uma seqüência de comprimento zero, ele contém somente espaços em branco, ele contém caracteres inválidos ou é um caminho de dispositivo (começa com \ \. \) (ArgumentException).

  • O caminho não é válido porque ele é Nothing (ArgumentNullException).

  • destinationDirectoryName é Nothing ou uma sequência de caracteres vazia (ArgumentNullException).

  • O diretório de origem não existe (DirectoryNotFoundException).

  • A diretório de origem é um diretório raiz (IOException).

  • O caminho combinado aponta para uma arquivo existente (IOException).

  • O caminho de origem e o caminho de destino são o mesmo (IOException).

  • ShowUI é definida como UIOption.AllDialogs e o usuário cancela a operação, ou um ou mais arquivos no diretório não podem ser copiados (OperationCanceledException).

  • A operação é cíclica (InvalidOperationException).

  • O caminho contém um dois-pontos (:) (NotSupportedException).

  • O caminho excede o comprimento máximo definido pelo sistema (PathTooLongException).

  • Um arquivo ou nome da pasta no caminho contém dois-pontos (:) ou está em formato inválido (NotSupportedException).

  • O usuário não possui permissões necessárias para exibir o caminho (SecurityException).

  • Um arquivo de destino existe mas não pode ser acessado (UnauthorizedAccessException).

Consulte também

Tarefas

Como: Localizar subdiretórios com um padrão específico em Visual Basic

Como: Obtenha a coleção de arquivos em um diretório em Visual Basic

Como: Move um diretório de Visual Basic

Como: Mover o conteúdo de um diretório Visual Basic

Referência

CopyDirectory