Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // OrtizOL - xCSw - http://ortizol.blogspot.com
- using System;
- using System.IO;
- namespace Receta.CSharp.R0503
- {
- public class CopiarContenidoDirectorio
- {
- public static void Main(string[] args)
- {
- Console.WriteLine();
- // Comprueba que se hayan pasado argumentos desde
- // la línea de comandos:
- if (args.Length != 2)
- {
- Console.WriteLine("Uso desde la línea de comandos: \n" +
- "\tCopiarContenidoDirectorio.exe [RutaOrigen] [RutaDestino]");
- Console.ReadLine();
- return;
- }
- // Directorios de orgien y destino:
- DirectoryInfo directorioOrigen = new DirectoryInfo(args[0]);
- DirectoryInfo directorioDestino = new DirectoryInfo(args[1]);
- // Invoca al método `CopiarDirectorio` para copiar el
- // contenido de la ruta de origen a la ruta de destino:
- CopiarDirectorio(directorioOrigen, directorioDestino);
- Console.WriteLine("Copia satisfactoria.");
- Console.WriteLine();
- }
- public static void CopiarDirectorio(DirectoryInfo origen, DirectoryInfo destino)
- {
- // Comprueba que el destino exista:
- if (!destino.Exists)
- {
- destino.Create();
- }
- // Copia todos los archivos del directorio actual:
- foreach(FileInfo archivo in origen.EnumerateFiles())
- {
- archivo.CopyTo(Path.Combine(destino.FullName, archivo.Name));
- }
- // Procesamiento recursivo de subdirectorios:
- foreach (DirectoryInfo directorio in origen.EnumerateDirectories())
- {
- // Obtención de directorio de destino:
- string directorioDestino = Path.Combine(destino.FullName, directorio.Name);
- // Invocación recursiva del método `CopiarDirectorio`:
- CopiarDirectorio(directorio, new DirectoryInfo(directorioDestino));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement