[Lazarus-es] Problema con aplicacion que funcionaba y firebird

José Mejuto joshyfun en gmail.com
Vie Ene 18 17:16:16 CET 2013


El 18/01/2013 16:29, Jose Daboin escribió:
> Si era eso, lo cambie al directorio raiz y funciono correctamente, pero
> porq antes funcionaba y ahora no, eso es lo que no logro explicar. Pero
> bueno, ya veo que es problemas de privilegios. Otra cosa, quiere decir
> que si hago una aplicacion que quiera compartir debo de instalar
> directamente en C? me pregunto yo: ¿Para que es la carpeta de
> instalacion de Programas entonces?
>

Hola,

Los archivos que se abren para escritura no pueden estar localizados 
dentro de "Archivos de Programa" ni en "C:\" (te fallará en W7, vista, y 
superiores). Esos archivos deben estar (si son permanentes) en la 
carpeta de datos del usuario (si sólo es para ese usuario) o en la 
carpeta de datos de todos los usuarios. Si son archivos temporales, lo 
mismo, en la carpeta del usuario de temporales, de modo que si nos 
cargamos el usuario todos sus archivos relacionados se mueren con él, 
pero no los de la aplicación que puede estar usando otro usuario.

Si los archivos de usuario deben de estar disponibles con desktop 
deslocalizado en un dominio, estos deben de estar en el Roaming 
correspondiente, etc.

Windows dispone de API para decirnos cuales son estos directorios. 
Lazarus al ser multiplataforma sólo nos provee de funciones que son 
compatibles entre todos los sistemas operativos, y para eso dispones de 
funciones como "GetTemporalFile" que nos da un fichero temporal 
(localizado correctamente, en su carpeta) o "getUserDataFolder" (no 
estoy seguro 100% del nombre de la función) que nos da donde hay que 
guardar los datos de usuario.

Cualquier información fuera de esos directorios se considera o imposible 
de grabar (como C:\) o insegura (no protegida por las políticas de 
privacidad entre usuarios) y sólo se debe de usar cuando hay un motivo 
suficientemente fuerte. Por ejemplo en mi máquina de desarrollo tengo 
los diferentes Lazarus en F:\ fuera de todo control de usuarios o 
políticas de seguridad, de modo que puedo acceder a ellos desde 
cualquier usuario y hacer lo que quiera sin control por parte de 
Windows. Claro que si pulso suprimir en F:\Lazarus windows me va a dejar 
hacerlo, cosa que no es deseable a menos que seas un usuario avanzado.


-- 





More information about the Lazarus-es mailing list