![]() |
problemas con FileCreate o CreateFile
Hola, hola, tengo un problema al crear ficheros con las instrucciones CreateFile o FileCreate. Estoy programando una aplicacion en la que creo un fichero y despues de crearlo se debe de poder abrir para trabajar con el en cualquier momento. Con las fuciones CreateFile y FileCreate se crea el fichero perfectamente al pasarle la ruta, pero si despues quiero abrirlo (con ShellExecute) en la misma sesion de la aplicacion en la que lo he creado no me deja, en cambio si cierro al aplicacion y vuelvo a abrirla entonces si me deja abrir el fichero que cree en la sesion anterior. Al intentar abrirlo en la misma sesion que lo creo me dice que la ruta no es valida, cuando realmente el fichero esta creado en esa ruta.
¿Se os ocurre algo? Gracias. |
Hola,
Tal vez es que tengas que cerrar el archivo una vez creado para que puedas a su vez utilizar "ShellExecute" sin problemas. La función para cerrar un archivo es "CloseFile" o "FileClose". Lo siguiente provocaría el error que mencionas:
Pero, con esto otro ya no habrá problemas:
Si utilizas, empero, la función "CreateFile", entre sus parámetros está "dwShareMode", que te permite indicar la manera de compartir el archivo recién creado, mientras no lo cierres (cuando lo cierres el archivo estará disponible, claro). Echa un vistazo a la ayuda de la función "CreateFile" del API de Windows: Cita:
El siguiente código no produce el error que mencionas, porque se cierra el archivo luego de creado y antes de abrirlo:
Pero, tampoco este código produciría error alguno, puesto que se da permiso para leer el archivo, incluso sin que su "descriptor" esté cerrado:
|
Creo que con la explicación que te dio David, sobran las palabras.
Saludos |
La franja horaria es GMT +2. Ahora son las 18:42:54. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi