Copiar un directorio

18/09/2008 - 08:19 por Paul | Informe spam
Hola,

Alguien tiene alguna función para copiar directorios?

Gracias
 

Leer las respuestas

#1 Alberto Poblacion
18/09/2008 - 08:50 | Informe spam
"Paul" wrote in message
news:
Alguien tiene alguna función para copiar directorios?



Pues asi a mano, no, pero no es nada complicado hacerla:

using System.IO;
...
foreach (string fichero in Directory.GetFiles(directorioOrigen)
{
File.Copy(fichero, Path.Combine(directorioDestino,
Path.GetFileName(fichero)));
}


Ese bucle copia los ficheros que "cuelgan" directamente del directorio.
Si quieres también copiar subdirectorios, puedes añadir un bucle similar
utilizando Directory.GetDirectories para enumerar los directorios, y por
cada uno de ellos llamar recursivamente a la misma subrutina. Añade también
una llamada a Directory.CreateDirectory al principio para crear cada
directorio de destino. Algo parecido a lo siguiente (escrito de memoria, sin
probar):

private void CopiarRecursivamente(string rutaOrigen, string rutaDestino)
{
Directory.CreateDirectory(rutaDestino);
string[] directorios = Directory.GetDirectories(rutaOrigen);
foreach (string directorio in directorios)
{
CopiarRecursivamente(directorio, directorio.Replace(rutaOrigen,
rutaDestino));
string[] ficheros = Directory.GetFiles(directorio);
foreach (string fichero in ficheros)
{
File.Copy(fichero, Path.Combine(rutaDestino,
Path.GetFileName(fichero)));
}
}
}

Preguntas similares