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)
-   -   Copiando archivos (https://www.clubdelphi.com/foros/showthread.php?t=1638)

cone220 21-06-2003 22:18:24

Copiando archivos
 
Estoy desarrollando una aplicación que busca una serie de archivos, y cuando los encuentra los copia a un directorio predeterminado. Para ello estoy utilizando el CopyFile. Pero tengo un problema: si el archivo se esta creando, la aplicación ya lo copia, y obviamente, el archivo copiado es inválido. Cómo puedo chequear que el archivo no este en uso por otra aplicación en el momento que inicio la copia???

dabas 21-06-2003 23:26:36

Yo lo que sé, es que si creas una variable para ese archivo usando


Var archivo:File;
...
AssignFile(archivo, 'nombre archivo');
{$I-}
Reset(archivo);
{$I+}
If IoResult=0 then ShowMessage('El archivo existe');


Verificas si el archivo ya existe.
Pero desconozco si existe algun metodo mas efectivo.

Julià T. 22-06-2003 04:37:37

hola cone220:

puedes abrir el fichero en modo exclusivo, si el fichero está abierto por otro proceso, no lo podrás abrir, y si el fichero lo abres, ningún otro proceso lo podrá modificar cuando lo estes copiando "manualmente" en este caso.

Ahí va el código

Var
f:TFileStream;
begin
f:=TFileStream.Create(nombrefichero,fmOpenRead or fmShareExclusive);
//es decir lo abro en modo lectura y exclusivo
.....
tu código para copiar el fichero
.....
f.Free;
end;

cone220 23-06-2003 14:43:28

Lo probé asi y me dió resultado. Muchas gracias


La franja horaria es GMT +2. Ahora son las 19:02:11.

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