jusqu'à ce que Windows Vista, j'ai enregistré mes données d'application dans le répertoire où le programme était situé. L'endroit le plus courant était "C: \ Program Files \ MyApplication". Comme nous le savons, sous Vista et plus tard, l'utilisateur commun n'a pas de droit d'écrire sous le dossier "Fichiers de programme". Donc, ma première idée était de sauvegarder les données de l'application dans le dossier "Tous les utilisateurs \ Application Data". Mais il semble que ce dossier ait aussi écrit des restrictions! P>
Donc, mes besoins sont les suivants: p>
3 Réponses :
Il est souvent bon d'utiliser des variables d'environnement afin de garder les choses plus génériques. p>
Vista a changé certaines choses, avec des points de jonction NTFS. Voir http://www.svropops.com/svroprops/articles/jpoints.htm a> p>
Quoi qu'il en soit, en utilisant% appdata% doit mettre automatiquement des fichiers à la bonne place sur XP / Vista / 7 P>
% Appdata% n'est pas une zone commune écrite commune, n'est-ce pas?
Je voulais dire chaque utilisateur du système Windows.
Il n'y a pas de tel endroit. Même sur Windows XP (et probablement 2000 également), aucun tel emplacement n'existait jamais; Nous pensons simplement que cela a fait parce que nous avons tous couru avec des privilèges administratifs. Ce n'est pas avant que Vista nous oblige à courir en tant qu'utilisateur limité que nous réalisons nos hypothèses incorrectes. Vous allez devoir définir explicitement les autorisations sur votre répertoire. P>
Merci Luke, je suppose que je vais configurer des privilèges lors du processus d'installation sous un compte administrateur.
S'il n'y a pas de tel endroit, alors quel est le système .net.windows.forms.appllication.commonappdatapath (résout généralement C: \ Documents et paramètres \ Tous les utilisateurs \ Application Data \ CompanyName \ ProductName \ VersionNum)?
Les autorisations par défaut pour tous les utilisateurs \ Données d'application n'accordent pas un accès complet aux comptes d'utilisateurs limités. Si un utilisateur administratif crée un fichier là-bas, un utilisateur limité n'aura pas accès en écriture à ce fichier. Il semble que la question initiale tentait d'accomplir exactement cela, alors modifier le DACL est nécessaire.
Je créerais un sous-dossier comme tous les utilisateurs \ Data de l'application \ YourAppname \ Partagés, de sorte qu'il est clair que juste ce dossier contiendra des fichiers écrites par tous les utilisateurs, configurant les privilèges de l'installateur. P>