PDA

Ver la Versión Completa : Copiando archivos


cone220
21-06-2003, 22:18:24
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