Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Como saber si un archivo esta disponible (https://www.clubdelphi.com/foros/showthread.php?t=62382)

Mauro Daniel 19-12-2008 18:45:18

Como saber si un archivo esta disponible
 
Hola a todos...
Estoy trabajando con delphi 6. Tengo el siguiente problema: tengo una aplicación que crea un archivo al que accedo inmediatamente. El problema radica en que el acceso se origina antes de que el mismo se cree completamente y da un error (el cual creo que no viene al caso). A esto lo soluciono con un sleep, pero el tiempo que tengo que asignarle a este depende del tamaño del archivo. Mi pregunta es:
¿Existe alguna posibilidad de que yo pueda saber mediante alguna funcion si el archivo ya se copio en su totalidad?:confused:

Desde ya muchas gracias...

Caro 19-12-2008 19:48:34

Hola Mauro Daniel, talvez podría servirte FileExists que te indica si un archivo existe.

Código Delphi [-]
 if FileExists('C:\file.txt') then
  Showmessage('El archivo existe.');

Saluditos

Mauro Daniel 22-12-2008 11:27:07

Hola Caro, gracias por responder...
El problema de utilizar el FileExists es que te dice si existe el archivo o no. En el caso mio el archivo va a existir siempre, el tema es que todavia no se terminó de crear. Te doy un ejemplo, supongamos que en una carpeta yo tengo un archivo x.gbk, y antes de utilizarlo lo debo transformar en un x.gdb, cuando yo intento accederlo el archivo ya existe pero no está completo, por eso da error.
Lo que estoy haciendo como solución momentane es capturar el error y repetir la operacion hasta que el archivo se pueda abrir.
La solucion perfecta sería saber si existe alguna función que me permita conocer que el archivo todavia no está completo...

Les agradezco nuevamente...Saludos...

juanmdq 06-01-2009 17:34:33

Hola, lo que yo haria es intentar abrir el archivo para escritura, si me deja es porque ya esta libre, sino es que algún otro proceso lo esta utilizando.
Espero te sirva.


La franja horaria es GMT +2. Ahora son las 21:19:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi