none
Copiar diretório de um local para outro RRS feed

  • Pergunta

  • Olá! Tenho o código abaixo que uso para copiar diretórios (pastas), porém ele não avisa quando termina de copiar. Como faço para adicionar uma MsgBox por exemplo para avisar quando terminar de copiar? Obrigado!

    Sub copiar()
            copiarDiretorio(".\\Data", "C:\Instalador\Nome do Programa")
        End Sub
    
        Sub copiarDiretorio(ByVal CaminhoFonte As String, ByVal CaminhoDestino As String, Optional ByVal Sobrepor As Boolean = False)
    
            Dim DiretorioFonte As DirectoryInfo = New DirectoryInfo(CaminhoFonte)
            Dim DiretorioDestino As DirectoryInfo = New DirectoryInfo(CaminhoDestino)
            If DiretorioFonte.Exists Then
                If Not DiretorioDestino.Parent.Exists Then
                    Throw New DirectoryNotFoundException(" O diretório de destino não existe : " + DiretorioDestino.FullName)
                End If
    
                If Not DiretorioDestino.Exists Then
                    'MsgBox("O diretorio destino não existe , vou criá-lo", MsgBoxStyle.Critical, "Copia")
                    DiretorioDestino.Create()
                End If
    
                'copia todos os arquivos do diretório
                Dim arquivos As FileInfo
    
                For Each arquivos In DiretorioFonte.GetFiles()
                    If Sobrepor Then
                        arquivos.CopyTo(Path.Combine(DiretorioDestino.FullName, arquivos.Name), True)
                    Else
                        If Not File.Exists(Path.Combine(DiretorioDestino.FullName, arquivos.Name)) Then
                            arquivos.CopyTo(Path.Combine(DiretorioDestino.FullName, arquivos.Name), False)
                        End If
                    End If
                Next
    
                'copia todos os subdiretorios usando recursao
                Dim subdir As DirectoryInfo
                For Each subdir In DiretorioFonte.GetDirectories()
                    copiarDiretorio(subdir.FullName, Path.Combine(DiretorioDestino.FullName, subdir.Name), Sobrepor)
                Next
            Else
                Throw New DirectoryNotFoundException("Diretório origem não existe " + DiretorioFonte.FullName)
            End If
        End Sub


    quinta-feira, 6 de fevereiro de 2014 23:31

Respostas

  • Coloca um messagebox após o último Next do seu código

    MessageBox.Show("Cópia Concluída com Sucesso.")


    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    • Marcado como Resposta Free4k sexta-feira, 7 de fevereiro de 2014 12:51
    sexta-feira, 7 de fevereiro de 2014 05:34

Todas as Respostas

  • Coloca um messagebox após o último Next do seu código

    MessageBox.Show("Cópia Concluída com Sucesso.")


    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    • Marcado como Resposta Free4k sexta-feira, 7 de fevereiro de 2014 12:51
    sexta-feira, 7 de fevereiro de 2014 05:34
  • Obrigado amigo. Testei e percebi que o form trava ao copiar o diretório. Você sabe um jeito para isso não acontecer?
    sexta-feira, 7 de fevereiro de 2014 12:35