Est-ce que Microsoft a un document sur les meilleures pratiques en ce qui concerne le stockage de données App vs données de l'utilisateur sur différentes plates-formes Windows?
Question
Lors de la création d'une application qui ciblera les nombreuses versions de Windows ce qui est la meilleure pratique pour déterminer l'emplacement de stockage des données spécifiques à l'application. Plus précisément:
- Application des données spécifiques (par exemple l'application des données de configuration)
- Données d'utilisateur spécifique / Paramètres
Je sais que sous Windows Vista, par exemple, il y a des variables d'environnement, comme% APPDATA%, qui pourraient être utilisés, mais que sur Windows 7, Windows XP, Windows 98.
Ma principale question est-ce que Microsoft a une des meilleures pratiques doc pour cela, décrivant les emplacements du système de fichiers pour les différents types de données (app contre utilisateur) et les implications de sécurité qui doivent garder à l'esprit lors de la lecture / écriture à ces endroits?
Je suis aussi intéressé par la façon dont cela se rapporte non seulement pour les applications .NET (où ApplicationSettingsBase peut être utilisé), mais aussi dans non géré C / applications C +.
Merci à Pax et Remus pour les deux grandes réponses. Je l'ai trouvé ce produit aussi bien (spécifique à XP):
La solution
Il y a une bonne description de les différentes valeurs CSIDL et les dossiers se réfèrent à (y compris une description qui devrait, espérons-vous dire ce que vous devez savoir).
Il contient également des liens vers les fonctions que vous devez utiliser pour récupérer ces chemins de dossier spécial.
Notez que, comme de Vista, la méthode a changé un peu. Il utilise maintenant KNOWNFOLDERID
au lieu de CSIDL
et les fonctions ont changé. Voir .
Vous pouvez toujours utiliser les anciennes fonctions (en ce moment) car je crois qu'ils sont maintenant que des emballages autour des nouveaux. À un certain moment dans l'avenir, cela pourrait changer.
Autres conseils
Ils sont généralement décrits dans la section Logiciel Windows Logo Program (lien cassé) . Le lien est le document sur les exigences du logo Windows 7, mais les documents similaires existent pour XP, Windows 2003, Vista et Windows 2008. Dans les exigences techniques section, vous trouverez quelques-unes des informations que vous cherchez:
Toutes les données d'application qui doit être partagé entre les utilisateurs sur l'ordinateur doivent être stockés dans
ProgramData
Toutes les données de l'application exclusive à un utilisateur spécifique et non à partager avec d'autres utilisateurs de l'ordinateur doit stocker dans
Users\<username>\AppData
Dans les installations « par machine », l'utilisateur les données doivent être écrites au premier terme et pas lors de l'installation. C'est parce qu'il n'y a pas d'utilisateur correct emplacement pour stocker des données au moment de la installation.
EDIT:
de Windows 10 utilisateurs, recherchez le Les exigences de certification pour Windows Desktop Apps (Section 10)