Pregunta

Tengo un programa que comprueba periódicamente si hay nuevos archivos, y luego a procesar.

Porque quiero estar seguro de que el archivo no se copia a través de FTP, muevo el archivo primero.
Lo extraño es que en Windows Server 2008, el archivo se mueve, incluso cuando se está copiando, y los extremos de operación FTP copia en la nueva ubicación.

¿Cómo puede ser esto posible?

He probado el consumo problemático de estos simples líneas de código en un archivo VBS:

dim fso
set fso = createobject("Scripting.FileSystemObject")
fso.MoveFile "bigfile.zip", "moved\bigfile.zip"
¿Fue útil?

Solución

Bueno, al mover un archivo (en la misma unidad), que sólo está diciendo al sistema de archivos que el archivo se puede encontrar en otro lugar, no estás moviendo realmente ninguno de los datos alrededor. Así que supongo que la medida sigue adelante y le dice al sistema de ficheros donde el archivo se puede encontrar ahora, pero la operación de FTP ya ha asignado espacio en el disco duro para los datos reales y por lo tanto el hecho de que el archivo se ha movido, el won' t afectan el lugar donde se almacenan los datos en modo alguno, por lo que todas las obras.

Si ha movido el archivo a otra unidad Me asumir que algo se rompería en alguna parte.

Si usted tiene acceso al cliente, que podría tener la escritura cliente otro archivo pequeño después con el bigfile.zip.complete nombre o similar y su aplicación servidor podría esperar a que antes de comenzar el procesamiento, de esa manera se aseguraría de que es copiado terminado (esto sería también el trabajo en caso de que la conexión se cae a mitad de camino a través y el cliente deja de subir el archivo a pesar de que no ha terminado).

O si usted no tiene acceso al cliente, tal vez usted podría intentar mirar el tamaño del archivo, si no ha cambiado en tantos segundos o minutos, luego se ha de esperar terminado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top