Pregunta: | 25200 - COMO SABER SI UN ARCHIVO ESTA SIENDO UTILIZADO |
Autor: | Arturo Quiroz |
Como se si un archivo esta siendo utilizado, por ejemplo un excel, tengo una opcion en la que copio un tabla a formato excel, pero habeces genero el mismo nombre del archivo, cuando existe lo elimino, pero cuando esta siendo usado no lo puedo eliminar, quiero saber si hay alguna función que me diga si el archivo esta siendo usado. |
Respuesta: | Marvin Antonio Callejas Melèndez |
Hola:
Mediante APIS, puedes verificar el estado del archivo, sin embargo también puedes utilizar un método alternativo utilizando apertura de archivos de bajo nivel, con la funciòn FOPEN() de VFP, por ejemplo, si necesitas saber si el archivo miarchivo.xls esta abierto, puedes utilizar el siguiente còdigo: CONTROL_ARCH=FOPEN(..\miarchivo.xls) IF CONTROL_ARCH=-1 =messagebox("EL ARCHIVO ESTA ABIERTO") RETURN ENDIF **LIBERAR LA APERTURA DE ARCHIVOS CON FOPEN PARA PODER ** ESCRIBIR EN EL. IF CONTROL_ARCH<>-1 FCLOSE(CONTROL_ARCH) ENDIF Este código te permite verificar si el archivo esta abierto por otra persona y cancelar el procedimiento. Cualquier consulta adicional, puedes escribirme. |
Respuesta: | Julio Cesar Arango Cubillos |
No conozco una función que haga lo que necesitas, pero te doy una idea de lo que yo haría.
Antes de ejecutar el comando que copia la tabla haces una cláusula ON ERROR ON ERROR do PROC_ERROR use xxx copy to miArchivo ..... PROCEDURE PROC_ERROR if Err = yyy wait window "Archivo esta siendo utilizado" .... EndIf RETURN El error yyy es el codigo de error que sale cuando el archivo esta siendo utilizado, debes buscar en las ayudas el numero exacto porque yo no me lo sé de memoria. Espero que te sirva. |
Respuesta: | Jose Rolando Quintero Paz |
Hola
En realidad lo que quieres es saber si el archivo esta abierto o no. la funcion es la siguiente: IF USED("EJEMPLO.XLS") "wAIT WINDOWS "mensaje" ENDIF Aunque tambien podrias incluir una variable que reemplace el nombre del archivo. Esto funciona con las base de datos y tablas pero, nunca lo prove con otro tipo de archivo aunque con hacer la prueba no cuesta nada. Si quieres escribeme y te envio un ejemplo que convierte archivos de excel a fox y usa una variable que reemplaza el nombre del archivo, es decir la tabla toma el nombre de la hoja de calculo. |