jueves, 14 de abril de 2011

Mover, Copiar y Eliminar directorios

El día de hoy les hablare de cómo copiar, mover y eliminar archivos de un directorio para ello tenemos una importar el espacio de nombre System.IO a nuestro proyecto para poder acceder a los métodos que nos proporciona;

El espacio de nombres System.IO contiene los tipos que permiten leer y escribir en los archivos y secuencias de datos, así como tipos que proporcionan compatibilidad básica con los archivos y directorios para poder manejarlos a nuestra conveniencia.
Bueno sin más preámbulos les explico cómo poder mover, copia y eliminar un archivo.
El copiar directorio nos permite realizar una copia de una ruta a otra de un archivo o varios archivos, para ello tenemos

 
 public void CopiarDIrectorio(string DirectorioOrigen, string DirectorioDestino)
        {
            DirectoryInfo Origen = new DirectoryInfo(DirectorioOrigen);
            DirectoryInfo Destino= new DirectoryInfo(DirectorioDestino);

      //foreach (FileInfo file in Origen.GetFiles(@"*.txt"))
            foreach (FileInfo file in Origen.GetFiles())
            {
                file.CopyTo(Path.Combine(Destino.ToString(), file.Name), true);
            }
        }

   Como vemos el código es bastante sencillo, para ello ocupamos dos instancias de DirectoryInfo para poder la información con los directorios a ocupar, y bien para ello le asignamos nuestras variables con las rutas de los directorios.
Seguido a esto entramos en un ciclo y se preguntaran ¿Por qué un ciclo?, la respuesta es simple, en este casa si queremos mover todos los archivos que se encuentran dentro de un directorio a otro, es por ello que a nuestra objeto Origen con .GetFiles() obtenemos todos los archivos que se encuentran dentro de esa ruta, y bien para poder excluir algunos archivos y solo que queremos copiar entro de GetFile ponemos agregarle la restricción, para ello dentro de los paréntesis, nuestra restricción (@"*.txt") o (@"*.doc") o (@"*.png"), ect.
Con esto obtenemos todos los archivos de nuestro directorio, y bien con el FileInfo file ingresamos a dada uno de los elementos dentro de nuestro ciclo for, y bien ahora lo primordial de este pos.
Como copiar el archivo.
Dentro de nuestro ciclo agregamos

Nuestro método file.CopyTo
file.CopyTo(Path.Combine(Destino.ToString(), file.Name), true);

donde podemos ver que tenemos un Path.Combine(Destino.ToString(), file.Name)
esto para combinar la ruta de nuestro directorio con un nombre del archivo recordando que file contiene la información de nuestro archivo, y bien este método lo tenemos sobrecargado con un true al final, este true nos indica que podemos sobre-escribir un fichero ya existente con el mismo nombre.

Con esto ya tenemos nuestro método para copiar un archivo, retomando el mismo código para poder mover un archivo de un directorio a otro tenemos el método file.MoveTo.


file.MoveTo(Path.Combine(Destino.ToString(), file.Name));

Que es muy similar a CopyTo, pero este mueve el archivo directamente a la ruta destino. Quitándolo de la ruta origen.

Y bien para poder eliminar el archivo de un directorio tenemos el método, donde solo pasamos la ruta de los archivos a eliminar.

File.Delete(directorio);

Como plus podemos personalizar nuestros métodos donde podemos agregar restricción para ver si ya existe nuestro directorio o nuestro archivo,  para ello tenemos File.Exists

if (File.Exists(Rutaarchivo))
{
      //Codigo a realizar
En el cual solo preguntamos por medio de un fi si nuestro archivo existe en la ruta en caso contrario ya podemos trabajar con él, en caso contrario tenemos otro método llamado
String Rutanueva = @"c:\Prueba.txt";

File.Create(Rutanueva);

Con método nos permite crear un nuevo archivo de igual forma solo pasamos la ruta donde se creara con el nombre del archivo.

String Rutanueva = @"c:\Prueba1.txt";

File.Create(Rutanueva);

Con esto concluyo este post, espero les haya sido útil y ya saben cualquier comentario no duden en comentarlo, estamos para resolver dudas…
Un cordial Saludo!

1 comentario:

  1. 1xbet korean | BKL - Legalbet.co.kr
    1xbet korean. korean. All legal betting sites. korean. All legal betting sites. korean. All legal betting sites. 1xbet com gh korean. All legal betting sites.

    ResponderEliminar