Utilizar carpeta "Documents and settings\...\Datos de programa "

27/10/2006 - 12:01 por Francisco Rodríguez | Informe spam
Hola a todos.

Ya envié un mensaje hace tiempo relacionado, en parte, con este asunto. Pero
hay cosas que no me quedan muy claras sobre ello.

Para utilizar las buenas prácticas de programación recomendadas y evitar
problemas de permisos con usuarios estándar o restringidos que utilicen una
aplicación de escritorio para Windows, "me estoy quitando" de malas
costumbres como escribir en "Archivos de programa\MiPrograma" y cosas así
(desde hace unos meses, nunca es tarde para rectificar, supongo).

Para ello hago que la aplicación, al iniciarse (no he visto otro modo de
hacerlo, pero lo habrá), se cree su directorio en "\Documents and
settings\AllUsers", o sea:

\Documents and settings\AllUsers\[MiEmpresa]\[MiPrograma]

Y ahí ya lo que haga falta: más subdirectorios, archivos de configuración,
temporales, etc. Para hacerlo utilizo
"Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)".
No utilizo "Application.CommonApDataPath" porque eso me devuelve la
siguiente ruta:

\Documents and settings\AllUsers\[MiEmpresa]\[MiPrograma]\[Version]

Utilizo "AllUsers" porque de momento no tengo necesidad de perfiles
distintos para cada usuario.

Y las dudas son las siguientes:

- ¿Es "correcto" lo que estoy haciendo, o al menos es "asumible"? Vamos, que
si no es una chapuza lo que hago, pregunto.

- Según las recomendaciones, sé que debería usar el último formato (el que
incluye la versión). Pero, ¿qué ocurre cuando se cambia la versión? Si
utilizo esa carpeta para guardar configuraciones en un xml, por ejemplo, ¿no
es un "coñazo" tener que andar copiando la configuración (y todo lo que
necesite) a la carpeta de la nueva versión?, ¿o hay algo que se me ha pasado
por alto en este asunto?

No sé si me habré explicado bien. Gracias, un saludo.

Francisco Rodríguez

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion [MVP]
27/10/2006 - 13:31 | Informe spam
"Francisco Rodríguez" wrote in message
news:uP7ak7a%
- ¿Es "correcto" lo que estoy haciendo, o al menos es "asumible"? Vamos,
que si no es una chapuza lo que hago, pregunto.



Es razonablemente correcto, pero para una aplicación de .Net hay una
opción mejor: Usar el almacenamiento aislado (IsolatedStorage). Desde la
aplicación abres el almacenamiento aislado indicándole si lo quieres aislar
por usuario y assembly o por usuario, assembly y dominio de aplicación, y
también si lo quieres itinerante (roaming), de forma que viaje de máqina en
máquina junto con el perfil itinerante del usuario. Ya se encarga .Net de
elegir el directorio más adecuado bajo cada sistema operativo para guardar
los archivos propiamente dichos.
Como limitación, hay que decir que solo funciona "por usuario", asi que
no te servirá si necesitas el "All Users" como has indicado. Pero si no te
importa separar los datos por cada usuario, IsolatedStorage es probablemente
tu mejor opción.
Respuesta Responder a este mensaje
#2 Francisco Rodríguez
02/11/2006 - 18:05 | Informe spam
Gracias por la respuesta Alberto.

En efecto, necesito que sea para todos los usuarios (AllUsers). Le echaré un
vistazo al tema de almacenamiento aislado, que de momento no he tenido
oportunidad de probar.

Un saludo.
Francisco Rodríguez


"Alberto Poblacion [MVP]"
escribió en el mensaje news:%23pTT7tb%
"Francisco Rodríguez" wrote in message
news:uP7ak7a%
- ¿Es "correcto" lo que estoy haciendo, o al menos es "asumible"? Vamos,
que si no es una chapuza lo que hago, pregunto.



Es razonablemente correcto, pero para una aplicación de .Net hay una
opción mejor: Usar el almacenamiento aislado (IsolatedStorage). Desde la
aplicación abres el almacenamiento aislado indicándole si lo quieres
aislar por usuario y assembly o por usuario, assembly y dominio de
aplicación, y también si lo quieres itinerante (roaming), de forma que
viaje de máqina en máquina junto con el perfil itinerante del usuario. Ya
se encarga .Net de elegir el directorio más adecuado bajo cada sistema
operativo para guardar los archivos propiamente dichos.
Como limitación, hay que decir que solo funciona "por usuario", asi que
no te servirá si necesitas el "All Users" como has indicado. Pero si no te
importa separar los datos por cada usuario, IsolatedStorage es
probablemente tu mejor opción.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida