Como copiar arquivos com um padrão específico para um diretório no Visual Basic

O método GetFiles retorna uma coleção somente leitura de cadeias de caracteres que representam os nomes de caminho para os arquivos. É possível usar o parâmetro wildCards para especificar um padrão específico.

Se nenhum arquivo correspondente for encontrado, uma coleção vazia será retornada.

Você pode usar o método CopyFile para copiar os arquivos em um diretório.

Copiar arquivos com um padrão específico para um diretório

  1. Use o método GetFiles para retornar a lista de arquivos. Este exemplo retorna todos os arquivos .rtf do diretório especificado.

    For Each foundFile As String In My.Computer.FileSystem.GetFiles(
        My.Computer.FileSystem.SpecialDirectories.MyDocuments,
        Microsoft.VisualBasic.FileIO.SearchOption.SearchTopLevelOnly, "*.rtf")
    
  2. Use o método CopyFile para copiar os arquivos. Este exemplo copia os arquivos para o diretório de nome testdirectory.

    My.Computer.FileSystem.CopyFile(foundFile, "C:\testdirectory\" & My.Computer.FileSystem.GetName(foundFile))
    
  3. Feche a instrução For com uma instrução Next.

    Next
    

Exemplo

O exemplo a seguir, que apresenta os snippets acima em sua forma completa, copia todos os arquivos .rtf do diretório especificado para o diretório de nome testdirectory.

For Each foundFile As String In My.Computer.FileSystem.GetFiles(
    My.Computer.FileSystem.SpecialDirectories.MyDocuments,
    Microsoft.VisualBasic.FileIO.SearchOption.SearchTopLevelOnly, "*.rtf")

    My.Computer.FileSystem.CopyFile(foundFile, "C:\testdirectory\" & foundFile)
Next

Segurança do .NET Framework

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

  • O caminho não é válido por um dos seguintes motivos: é uma cadeia de comprimento zero, contém apenas espaços em branco, contém caracteres inválidos ou é um caminho de dispositivo (começa com \\.\) (ArgumentException).

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

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

  • O diretório aponta para um arquivo existente (IOException).

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

  • Um nome de arquivo ou de diretório no caminho contém dois-pontos (:) ou está em um formato inválido (NotSupportedException).

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

Confira também