56 votes

Le meilleur endroit pour stocker les fichiers de configuration et les fichiers journaux sous Windows pour mon programme?

J'ai besoin de stocker les fichiers journaux et les fichiers de configuration pour mon application. Où est le meilleur endroit pour les stocker?

Maintenant, je suis juste en utilisant le répertoire courant, ce qui finit de les mettre dans le répertoire Program Files où mon programme de vie.

Les fichiers journaux seront probablement accessibles par l'utilisateur assez régulièrement, alors %APPDATA% me semble un peu difficile à obtenir.

Est un sous-répertoire %USERPROFILE%\My Documents le meilleur? Il a besoin de travailler pour toutes les versions de Windows, à partir de 2000.

40voto

Robert Rossney Points 43767

Si vous n'êtes pas à l'aide de ConfigurationManager pour gérer votre application et les paramètres d'utilisateur, vous devriez être. La configuration de la boîte à outils de la .NET Framework est remarquablement bien pensé, et les outils de Visual Studio qui interagissent avec elle sont trop.

Le comportement par défaut de ConfigurationManager met invariant (application) et modifiables par l'utilisateur (utilisateur) réglages dans les bons endroits: les paramètres de l'application aller dans le dossier de l'application et des paramètres de l'utilisateur d'aller en System.Environment.SpecialFolder.LocalApplicationData. Il fonctionne sous toutes les versions de Windows qui prennent en charge .NET.

Comme pour les fichiers journaux, System.Environment.SpecialFolder.LocalApplicationData est généralement l'endroit où vous souhaitez les mettre, parce que c'est la garantie d'être accessible en écriture aux utilisateurs.

Il y a certainement des cas où vous n'auriez pas, par exemple, si vous souhaitez graver des fichiers sur un partage réseau, de sorte que vous pouvez facilement y accéder à distance. Il y a un assez large éventail de moyens à mettre en œuvre, mais la plupart d'entre eux commencent avec la création d'un paramètre d'application qui contient le chemin vers le dossier partagé. Tous impliquent l'administration.

J'ai un couple de plaintes à propos de ConfigurationManager et VS outils: il doit y avoir mieux à haut de niveau de la documentation qu'il est, et d'une meilleure documentation de la VS-générés Settings classe. Le mécanisme par lequel l' app.config le fichier tourne dans le fichier de configuration d'application dans la cible répertoire de compilation est opaque (et la source de l'une des questions les plus fréquemment posées de tous: "ce qui est arrivé à ma chaîne de connexion?"). Et si il y a moyen de créer des paramètres qui n'ont pas de valeurs par défaut, je n'ai pas trouvé.

12voto

WWC Points 749

Remarque: vous pouvez obtenir le chemin d'accès au dossier LocalApplicationData dans .NET à l'aide de la fonction suivante:

 string strPath=System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData);
 

9voto

Sunny Milenov Points 10978

Pour les paramètres d'application, utilisez System.Environment.SpecialFolder.ApplicationData. C'est ici que sont stockées les données d'un profil itinérant. Ainsi, votre utilisateur peut se connecter et travailler à partir de différentes machines du domaine.

Pour les fichiers journaux - System.Environment.SpecialFolder.LocalApplicationData

6voto

RWendi Points 890

Pour être honnête,% appdata% est toujours le meilleur endroit pour placer vos fichiers de configuration et vos fichiers journaux, car il sert d’espace réservé pour stocker les données de votre application. Cela ne devrait pas être si difficile d’accéder, écrivez simplement% appdata% dans l’explorateur et vous serez directement dirigé vers votre répertoire% appdata%.

4voto

TravisO Points 6257

Ne pas stocker les fichiers de config dans le dossier de l'application, Microsoft a déclaré que ce n'est PAS l'endroit idéal. Windows a été le déplacement vers le blocage de l'écriture à C:\Program Files\ et vous trouverez dans Vista toute application qui tente d'écrire ici, va mettre le feu à un contrôle de compte d'utilisateur avertissement.

Windows 7 va permettre aux utilisateurs de personnaliser ce que l'UAC popups ils utilisent (attendre quelques utilisateurs avec pouvoir de bloquer la plupart d'entre eux) et que votre application s'échouer gel/si l'utilisateur n'a jamais approuve cette tentative d'écriture.

Si vous utilisez la bonne de l'utilisateur et appdata variables, alors, Win 2000, XP, Vista et Win7 permettra de tracer les données de la bonne écriture amical dossier, sans contrôle de compte d'utilisateur popups.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X