Copiar carpetas con ASP

24/Ene/2009 ASP , Deja un comentario

Muchas veces estamos trabajando con ficheros en tiempo real donde guardamos nuestras estadísticas, datos de trazas de ejecución de código o simplemente información útil de la propia aplicación. Toda esta información es guardada en directorios del servidor web habilitados al respecto. Y no nos vamos a engañar, el volumen de información que podemos generar puede llegar a ser desorbitado. Lo más normal cuando trabajamos con volumenes de información grandes es el datar esos ficheros de tal manera que nos sea posible saber el dia al cual corresponde dicho fichero. Por consiguiente deberemos de tener operaciones que eliminen los más antiguos, o los menos usados,...

Ante tal panorama es muy probable que se nos presente "el problema", más bien necesidad, de copiar directorios de un sitio a otro.

Lo primero que tendremos que hacer será instanciar el objeto FileSystemObjet.

  1. Set fso = Server.CreateObject("Scripting.FileSystemObject")

Para copiar carpetas con ASP nos apoyaremos en el método CopyFolder. Aunque pueda parecer sencillo, deberemos de tener en cuenta una serie de cosas:

Posibles formas de copiar directorios
a) Copiar todo el contenido del directorio A en el directorio B. Deberemos de utilizar los dos directorios tal cual.

  1. CopyFolder "c:\directorio1", "c:\directorio2", true

b) Crear el directorio A dentro del directorio B. Deberemos de utilizar el separador de directorios en el directorio destino.

  1. CopyFolder "c:\directorio1", "c:\directorio2\", true

c) Crear alguno de los directorios de A en B. Podemos utilizar comodines en el directorio origen, mediante los cuales indiquemos que directorios se copiaran en el destino.

  1. CopyFolder "c:\directorio1\d*", "c:\directorio2", true

Y si lo que intentamos copiar existe.
El tercer parámetro del método nos sirve para la sobrescritura. Si el destino existe y queremos que se sobrescriba debremos de poner el tercer parámetro a true, sino deberemos dejarlo a false.

Y si no existe el origen o se nos olvido activar la sobrescritura.
Es muy posible que al utilizar este método se nos generen errores, ya sea porque existan directorios y no hayamos activado la sobrescritura o porque no exista el origen. Es por ello que deberemos de utilizar una gestión de errores.

Primero desactivaremos la getsión de errores del servidor

  1. On Error Resume Next

Y posteriormente preguntaremos si se ha producido algún error.

  1. If Err.Number <> 0 then
  2. 'Gestión del error
  3. end if

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*