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???
|
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. |
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; |
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