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)

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor