JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Utilidad: Copiar un archivo a todas las subcarpetas de cierto nombre

CopyFilesAyer necesité hacer precisamente eso: tenía varias carpetas de primer nivel con una estructura de subcarpetas muy grande y llena de niveles. Dentro de éstas había una serie de carpetas -todas con el mismo nombre- en las que debía copiar un determinado archivo o, si existía, sobrescribirlo con el nuevo. Significaba revisar miles de carpetas en intrincados niveles, localizar las que se llamaban de determinada forma, y copiar dentro de éstas el archivo. Hacer algo así a mano para cada caso me hubiera llevado horas, por lo que estuve buscando la manera de automatizarlo.

Primero lo intenté usando una simple línea de comandos y la instrucción FOR y también la instrucción FORFILES. Estuve bastante tiempo intentándolo, pero no fui capaz de conseguirlo :-S

Así que al final invertí un rato en crear un programa de línea de comandos en C# que hiciera exactamente lo que yo necesitaba, y debería haber empezado por ahí, pues me hubiera ahorrado un precioso tiempo.

El programa se llama "CopiarArchivoASubcarpetas.exe" y toma tres parámetros:

  • La carpeta en la que se deben buscar las subcarpetas con las que queremos trabajar. Puede ser una ruta absoluta o simplemente el nombre de una carpeta dentro de la carpeta actual en la que tenemos abierta la línea de comandos, ya que la resolverá en ese caso.
  • El nombre de las subcarpetas a buscar. Esto es simplemente una simple cadena.
  • El archivo que queremos copiar. Nuevamente puede ser una ruta absoluta o una relativa a la carpeta actual de la línea de comandos.

Si lo ejecutamos sin parámetros o con -? o /? muestra una ayuda sencilla.

Por ejemplo:

CopiarArchivoASubcarpetas.exe C:\MiCarpeta SubCarpeta C:\NuevoArch.htm

copiará el archivo "NuevoArch.htm" a todas las carpetas que se llamen "SubCarpeta" dentro del directorio C:\MiCarpeta

Si la línea de comandos la tenemos abierta en C:\, podríamos escribir simplemente:

CopiarArchivoASubcarpetas.exe MiCarpeta SubCarpeta NuevoArch.htm

ya que resuelve la ruta automáticamente.

Es una utilidad muy simple, que se escribe y se prueba en un rato, pero espero que a más de uno le pueda ahorrar tiempo si se encuentra con una necesidad similar en el futuro.

La puedes descargar, junto con el archivo .cs de código fuente, desde aquí: CopiarArchivoASubcarpetas.zip (3,26 Kb)

José Manuel Alarcón José Manuel Alarcón
Fundador y director de campusMVP.es, el proyecto de referencia en formación on-line para programadores en lengua española. Autor de varios libros y cientos de artículos. Galardonado como MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.
Descarga GRATIS mi último libro (no técnico): "Tres Monos, Diez Minutos".
Banner

Agregar comentario