Что такое хорошее место для хранения файлов данных на Win7, которые могут быть доступны для нескольких учетных записей пользователей? - PullRequest
3 голосов
/ 16 августа 2010

Итак, я работал над системой, состоящей из нескольких частей, такой как стандартное приложение пользовательского режима, плагин для Internet Explorer и служба Windows. Мне нужно иметь доступ и / или манипулировать одним и тем же набором файлов данных из всех этих частей, которые могут работать под разными учетными записями пользователей. И я, кажется, немного смущен тем, какое место лучше всего хранить для этих данных.

В настоящее время я использую каталог в профиле «Все пользователи». Единственная проблема заключается в том, что SHFileOperation, похоже, не работает для удаления файлов из этого каталога при вызове из службы Windows, которая работает под учетной записью локальной системы; Я получаю файл не найдена ошибка. Я понимаю, что SHFileOperation заменен IFileOperation с Vista, и я обновил этот код, чтобы использовать IFileOperation, и он действительно работает здесь, но мне интересно, могу ли я столкнуться с другими проблемами в будущем.

Итак, вопрос в том, есть ли "лучшее" место для хранения этих файлов данных на Win7, чем в профиле "Все пользователи"?

1 Ответ

2 голосов
/ 17 августа 2010

ProgramData это путь. В моей (довольно стандартной) установке Windows 7 она отображается в C: \ ProgramData. Он не защищен UAC, поэтому никто не должен повышаться, чтобы добраться до него. Создайте там папку с названием вашего приложения и все готово. % ProgramData% будет достигать его из пакетных файлов и т. Д., И вы сможете найти его, однако найдете известные папки - CSIDL_COMMON_APPDATA, если вы работаете в собственном коде, System.Environment.SpecialFolders в управляемом коде - если его нет в этом перечислении тогда в пакете кодов есть один.

Некоторым пользователям может быть немного сложно найти файл, если им нравится просматривать «Мои документы», но тогда использование профиля AllUsers также может иметь эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...