COPIAR PASTA PARA OUTRO DIRETORIO

CLEVESALMEIDA 26/03/2011 18:19:03
#369294
[txt-size=2]Pessoal,

Preciso copiar uma pasta e todos os aquivos e subpastas que estão dentro dela para outro diretório no VB 2010. Já procurei em vários foruns e não consigo encontrar nada que funcione com pastas.
Fiz varios testes... usei o IO.Directory.Move p mover p outro lugar e funcionou, (porem preciso copiar)... Usei tambem o FileCopy mas ele só copia arquivo e mesmo assim especificando o nome de origem e o nome de destino com extensão, ou seja, não funcionou colocar *.* , e mesmo assim (quero copiar a pasta toda). Alguem tem uma solução?

Tenho textbox1, textbox2 e button1. Quando eu clicar no button1 preciso que os arquivos sejam copiados do diretório descrito no textbox1 para o do textbox2.[/txt-size]

Vlw galera..
RODRIGOFERRO 26/03/2011 20:40:39
#369311
perai... voce criou na parte de vb6 porém citou o VB2010 que creio que seja o VS2010.

Afnal de contas, precisa em qual plataforma ?
RODRIGOFERRO 26/03/2011 21:44:53
#369315
em vb.net segue uma função que acabei de testar



Imports System.IO

Public Class Form1

[ô] Usage:
[ô] Copy Recursive with Overwrite if exists.
[ô] RecursiveDirectoryCopy([Ô]C:\Data[Ô], [Ô]D:\Data[Ô], True, True)
[ô] Copy Recursive without Overwriting.
[ô] RecursiveDirectoryCopy([Ô]C:\Data[Ô], [Ô]D:\Data[Ô], True, False)
[ô] Copy this directory Only. Overwrite if exists.
[ô] RecursiveDirectoryCopy([Ô]C:\Data[Ô], [Ô]D:\Data[Ô], False, True)
[ô] Copy this directory only without overwriting.
[ô] RecursiveDirectoryCopy([Ô]C:\Data[Ô], [Ô]D:\Data[Ô], False, False)

[ô] Recursively copy all files and subdirectories from the specified source to the specified
[ô] destination.
Private Sub RecursiveDirectoryCopy(ByVal sourceDir As String, ByVal destDir As String, ByVal fRecursive As Boolean, ByVal overWrite As Boolean)
Dim sDir As String
Dim dDirInfo As IO.DirectoryInfo
Dim sDirInfo As IO.DirectoryInfo
Dim sFile As String
Dim sFileInfo As IO.FileInfo
Dim dFileInfo As IO.FileInfo
[ô] Add trailing separators to the supplied paths if they don[ô]t exist.
If Not sourceDir.EndsWith(System.IO.Path.DirectorySeparatorChar.ToString()) Then
sourceDir &= System.IO.Path.DirectorySeparatorChar
End If
If Not destDir.EndsWith(System.IO.Path.DirectorySeparatorChar.ToString()) Then
destDir &= System.IO.Path.DirectorySeparatorChar
End If
[ô]If destination directory does not exist, create it.
dDirInfo = New System.IO.DirectoryInfo(destDir)
If dDirInfo.Exists = False Then dDirInfo.Create()
dDirInfo = Nothing
[ô] Recursive switch to continue drilling down into directory structure.
If fRecursive Then
[ô] Get a list of directories from the current parent.
For Each sDir In System.IO.Directory.GetDirectories(sourceDir)
sDirInfo = New System.IO.DirectoryInfo(sDir)
dDirInfo = New System.IO.DirectoryInfo(destDir & sDirInfo.Name)
[ô] Create the directory if it does not exist.
If dDirInfo.Exists = False Then dDirInfo.Create()
[ô] Since we are in recursive mode, copy the children also
RecursiveDirectoryCopy(sDirInfo.FullName, dDirInfo.FullName, fRecursive, overWrite)
sDirInfo = Nothing
dDirInfo = Nothing
Next
End If
[ô] Get the files from the current parent.
For Each sFile In System.IO.Directory.GetFiles(sourceDir)
sFileInfo = New System.IO.FileInfo(sFile)
dFileInfo = New System.IO.FileInfo(Replace(sFile, sourceDir, destDir))
[ô]If File does not exist. Copy.
If dFileInfo.Exists = False Then
sFileInfo.CopyTo(dFileInfo.FullName, overWrite)
Else
[ô]If file exists and is the same length (size). Skip.
[ô]If file exists and is of different Length (size) and overwrite = True. Copy
If sFileInfo.Length <> dFileInfo.Length AndAlso overWrite Then
sFileInfo.CopyTo(dFileInfo.FullName, overWrite)
[ô]If file exists and is of different Length (size) and overwrite = False. Skip
ElseIf sFileInfo.Length <> dFileInfo.Length AndAlso Not overWrite Then
Debug.WriteLine(sFileInfo.FullName & [Ô] Not copied.[Ô])
End If
End If
sFileInfo = Nothing
dFileInfo = Nothing
Next
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
RecursiveDirectoryCopy([Ô]O:\mysql[Ô], [Ô]O:\aaa[Ô], True, True)
End Sub
End Class

Abraços

CLAUDIOENNER 07/11/2012 17:33:38
#413735
Cara, muito bom, depois de muito procurar achei seu código que me ajudou demais, Valeu!
OMAR2011 07/11/2012 19:24:08
#413741
CLEVESALMEIDA eu acredito que ninguém aqui é cego.
Existe certas regras.
Valeu.
MARCELO.TREZE 07/11/2012 20:00:05
#413743
Colega se a duvida foi sanada por favor encerre, e leia as regras do forum, letras grandes dão a impressão de que você está gritando, não esqueça isso.

VELDRAME 08/11/2012 08:14:19
#413764
Citação:

[OFF]


E ai Claduio, gostei da assinatura, mas eu acho que você esquece duas coisa ou eu não sei binário...
[Ô]Existem 10 pessoas, as que conhecem binários e as que não conhecem...[Ô]
Não seria: Existe 10 tipo de pessoa, a que conhece binários e s que não conhece...
Ou ainda
Existem 10 TIPOS pessoas, as que conhecem binários e as que não conhecem...

Mas enfim, gostei!!!
Tópico encerrado , respostas não são mais permitidas