FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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???
|
#2
|
|||
|
|||
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. |
#3
|
|||
|
|||
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; |
#4
|
|||
|
|||
Lo probé asi y me dió resultado. Muchas gracias
|
|
|
|