Foros del Web » Programando para Internet » ASP Clásico »

Verificar si un archivo cambió

Estas en el tema de Verificar si un archivo cambió en el foro de ASP Clásico en Foros del Web. El escenario es este. 1. un servidor me envía un archivo "archivo.xml" cada x minutos vía FTP y varias imágenes y se van sustituyendo cada ...
  #1 (permalink)  
Antiguo 15/04/2008, 12:59
 
Fecha de Ingreso: julio-2006
Ubicación: Montevideo
Mensajes: 34
Antigüedad: 18 años, 9 meses
Puntos: 0
Verificar si un archivo cambió

El escenario es este.

1. un servidor me envía un archivo "archivo.xml" cada x minutos vía FTP y varias imágenes y se van sustituyendo cada vez que las manda

La estructura del XML es algo como esto:
Código:
<?xml version="1.0" encoding="ISO-8859-1" ?>
     <creado>April 01, 2008 14:15</creado>
     <datos>
             <nodo1>
                 ..........
                 ..........
             </nodo1>
             <nodo2>
                 ..........
                 ..........
             </nodo2>
      </datos>
</xml>

2. Mi servidor ejecuta una página cada 10 minutos y ésta tendría que comparar la fecha de <creado></creado> del XML con la fecha que tiene guardada en una base de datos, si esta fecha es diferente hace una copia del archivo en otra carpeta, lo abre e ingresa el contenido del XML a la base de datos, para seguir con dicha comprobación hasta que el archivo sea actualizado nuevamente y asi continuar.

El problema???????
Hasta aca no tengo problemas, pero el problema surgió cuando me di cuenta de que el proceso de ingresar a la base de datos podría ejecutarce al mismo momento que el de subida por FTP y asi grabar en la base de datos información no completa.

En el XML lo solucioné intentando parsear la data, si da error es porque todavia esta subiendo por FTP, si no da error continúo con la copia del archivo y todo lo demas.

Es algo asi:
Código:
    Dim xmldoc
    Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
    xmldoc.async = False
    xmldoc.load(Server.MapPath("prueba.xml"))
    If xmldoc.parseError.ErrorCode=0 Then
           response.write "si"
	else
		response.write xmldoc.parseError.reason
    End If
El gran problema
¿Cómo puedo verificar de una forma parecida si una imágen no está subiendo por FTP en ese momento y asi poder copiarla sin problemas?

Puedo utilizar componentes o lo que se requiera para esto
  #2 (permalink)  
Antiguo 15/04/2008, 13:38
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Verificar si un archivo cambió

yo tenia un error similar

pero lo solucione arcaicamente

tenia una apliación que subia los archivos via FTP (Visual Basic)
entraba al server y buscaba un archivo de texto llamado "aspocupado.txt" si ese archivo estaba creado, no subia nada al server y esperaba de nuevo (timer) el timpo para poder usarlo

si no estaba ese archivo creaba un arxchivo de texto llamado ftpocupado.txt
subia toda la información
una vez terminaba de subir borraba el archivo ftpocupado.txt

luego el asp que me actualizaba la base buscaba cada x tiempo ftpocupado.txt, si el archivo no estaba creaba inmediatamente "aspocupado.txt" copiaba todo a mi base de datos, y luego de terminado borraba el archivo "aspocupado.txt"

eso me permitir no tener errores.... dado que los archivos de txt solo sirven para evitar que la otra aplicación interfiera.

Suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 15/04/2008, 14:19
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Verificar si un archivo cambió

Cita:
En el XML lo solucioné intentando parsear la data, si da error es porque todavia esta subiendo por FTP
Supongo que con algo parecido, intenta cambiar el nombre o copiar el archivo a otro lado y si da error es que el archivo esta agarrado por otro proceso, que en este caso sería el Upload.
  #4 (permalink)  
Antiguo 16/04/2008, 07:37
 
Fecha de Ingreso: julio-2006
Ubicación: Montevideo
Mensajes: 34
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Verificar si un archivo cambió

Cita:
Iniciado por JuanRAPerez Ver Mensaje

yo tenia un error similar

pero lo solucione arcaicamente

tenia una apliación que subia los archivos via FTP (Visual Basic)
entraba al server y buscaba un archivo de texto llamado "aspocupado.txt" si ese archivo estaba creado, no subia nada al server y esperaba de nuevo (timer) el timpo para poder usarlo

si no estaba ese archivo creaba un arxchivo de texto llamado ftpocupado.txt
subia toda la información
...........
Esta solución no la puedo implementar dado de que no tengo control sobre el servidor que me envía los archivos, y pedirles a los encargados que programen algo como eso sería subir bastante los costos.

Igualmente muchas gracias por la idea...

Última edición por Stendelis; 16/04/2008 a las 07:44
  #5 (permalink)  
Antiguo 16/04/2008, 07:42
 
Fecha de Ingreso: julio-2006
Ubicación: Montevideo
Mensajes: 34
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Verificar si un archivo cambió

Cita:
Iniciado por Myakire Ver Mensaje

Supongo que con algo parecido, intenta cambiar el nombre o copiar el archivo a otro lado y si da error es que el archivo esta agarrado por otro proceso, que en este caso sería el Upload.
!!!!!Sabes que no¡¡¡¡¡¡¡, hice la prueba copiándolo a otra carpeta y para mi asombro, NO ME DIO ERROR, jajaj me copio la mitad de la imágen.

¿Es posible cambiar el nombre a un archivo en ASP?

Otra solución que se me ocurrió...

Ir y mirar el tamaño del archivo, esperar unos segundos y mirarlo nuevamente y compararlo con el tamaño anterior, si cambió es que lo están subiendo por FTP, si no cambió es que esta pronto para copiar...

Problema??????

¿Cómo hago para hacer que un ASP espere unos segundos?
  #6 (permalink)  
Antiguo 16/04/2008, 09:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Verificar si un archivo cambió

Cita:
¿Es posible cambiar el nombre a un archivo en ASP?
Usando FSO
Cita:
¿Cómo hago para hacer que un ASP espere unos segundos?
http://classicasp.aspfaq.com/general...-or-sleep.html
Cita:
!!!!!Sabes que no¡¡¡¡¡¡¡, hice la prueba copiándolo a otra carpeta y para mi asombro, NO ME DIO ERROR, jajaj me copio la mitad de la imágen.
mmmmm, en este momento sin hacer pruebas, solo puedo decir que: no me la creo habrá que constatarlo

  #7 (permalink)  
Antiguo 16/04/2008, 13:01
 
Fecha de Ingreso: julio-2006
Ubicación: Montevideo
Mensajes: 34
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Verificar si un archivo cambió

Gracias Myakire:

No se porque, pero no había probado con FSO MoveFile solo había probado CopyFile, y aunque no lo creas con Copy si funciona...

Solucionado el problema, si se utiliza FSO MoveFile para renombrar un archivo y éste esta siendo utilizado por otro proceso da un mensaje de "Acceso denegado"

  #8 (permalink)  
Antiguo 16/04/2008, 13:22
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Verificar si un archivo cambió

Bueno, que bueno que te funcionó, si el moveFile no hubiera funcionado, el deleteFile ese si que no hubiera fallado, aunque hubiéramos tenido que hacer una copia primero

En fin, menos mal que con el moveFile se arregló
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:11.