Différence entre " SpecialFolder.LocalApplicationData " et " SpecialFolder.ApplicationData?

Sur mon système, %AppData% mène à ApplicationData qui est C:Users<USER>AppDataRoaming

Mais il y a aussi C:Users<USER>AppDataLocal

Et pour plus de confusion!--5-->

string local = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string roaming = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

ma question Est la suivante: à quel endroit mon application devrait-elle enregistrer ses données?

y a-t-il des lignes directrices pour déterminer lequel de ces emplacements utiliser? Est-ce que je me laisse aller à des problèmes si je choisis le mauvais endroit?

33
demandé sur DavidRR 2012-03-14 23:56:04

3 réponses

Roaming le dossier est copié entre les machines lorsque les profils roaming sont activés (dans un environnement de domaine). Utilisez-le pour les données d'application que vous souhaitez partager entre machines. mais ne stockez pas de gros fichiers là-dedans -- les services informatiques n'aiment pas quand vous faites cela, et cela augmente le temps que l'utilisateur se connecte et se déconnecte à mesure que les fichiers sont copiés.

Local dossier n'est pas copié entre les machines. Utilisez - le pour les données d'application spécifique à une machine.

LocalLow le dossier est utilisé pour les tâches de faible privilège (comme Internet Explorer). Vous ne devriez pas besoin de s'inquiéter à ce sujet.

Pour les fichiers que l'utilisateur sauvegardées, vous devez les mettre (par défaut) dans le Documents dossier.

45
répondu Roger Lipscombe 2015-04-11 11:13:51

Selon MSDN la différence est que LocalApplicationData reste sur la machine locale et ne pas errer... ApplicationData roam par exemple, si l'utilisateur se connecte au domaine depuis un autre ordinateur, il sera synchronisé...

LocalLow se réfère à des situations spécifiques comme un BHO tournant en "mode protégé" D'IE...

pour une application standard utilisez toujours ApplicationData. Utilisez LocalApplicationData pour les choses qui ne devraient pas errer avec l'utilisateur...

9
répondu Yahia 2012-03-14 20:02:34

From MSDN -Environnement.SpecialFolder Énumération:

ApplicationData-le répertoire qui sert de dépôt commun pour les données spécifiques à l'application pour l'utilisateur courant en itinérance. Un utilisateur itinérant de travaux sur plus d'un ordinateur sur un réseau. Le profil d'un utilisateur en itinérance est conservé sur un serveur du réseau et est chargé sur un système lorsque l'utilisateur se connecte.

LocalApplicationData le répertoire qui sert de dépôt commun pour les données spécifiques à une application qui sont utilisées par l'utilisateur courant non en itinérance.

En bref, utiliser ApplicationData pour les profils d'itinérance, et LocalApplicationData pour les profils Non roaming.

1
répondu Oded 2012-03-14 20:03:07