В версиях Windows, начиная с Vista, папка ProgramData находится на системном томе и скрыта от глаз пользователя. Так что, для того чтобы на неё (как и на некоторые другие здесь описываемые) взглянуть, придётся настроить систему на показ скрытых файлов и папок. В ней, как и в других местах, программы хранят свои данные. Расположение данных в Windows вообще зависит от того, как, грубо говоря, программисты “накодировали” свою программу, которую вы впоследствии установили.
Какие места используются программами для хранения данных?
Их несколько. И, помимо специально приложениями создаваемых, главными являются следующие:
C:\Пользователи\имя_пользователя
Однако их содержимое может быть вам недоступно из-за ограничения в правах, даже если вы являетесь администратором (потому то их и две!). При попытке открыть одну из папок вас может встретить такое окно:
Это поправимо, и впредь, чтобы проблемы с доступом нам не мешали, советую обратиться к статье Как получить полный доступ ко всем папкам Windows или воспользоваться специальной программой типа (доступна лишь для английской локали) Junction Box. В первом случае представлен небольшой код, который позволит получать доступ к папкам прямо из контекстного меню (пользоваться аккуратно!), вторая специально создана для корректной работы рекурсива всех сканирующих эту папку программ.
Как видите по адресу, сколько пользователей в системе, столько и будет папок Application Data с характерными для конкретного пользователя настройками. Это же правило касается и схожей с ней папки AppData. Ну, что с чем схоже, мы сейчас с вами проясним…
Почти никакой. Причём именно AppData является прерогативной при сохранении приложениями своих данных. Одновременное их (папок) присутствие не означает дублирование находящихся в них данных. Просто некоторые из них могут быть доступны для прямого изменения, а некоторые – нет. В сущности наличие папки Application Data – некий артефакт, и папкой она … не является. Это лишь путь, проложенный проводником Windows, своеобразный узел, указующий на родительскую папку. Почему? Вот вам небольшой прикол или своеобразный Windows-баг (обратите внимание на путь в строке адреса):
Если вы не поняли суть этого “фокуса”, ознакомьтесь со статьёй Символические ссылки Windows: утилита mklink.
Но ладно. Что мы имеем в Windows:
Очередное хранилище с той лишь разницей (в отношении AppData), что здесь хранятся данные, доступные всем учётным записям системы. Так сама Microsoft и заявляет. В Windows XP такой папки, к примеру, не было. Данные хранились по пути:
C:\Documents and Settings\Пользователи\Application Data
Так вот, чтобы нужный только вам файл (какой-нибудь словарик к программе, к примеру) в папке Application Data не хранился, он скачается в Program Data. Чтобы все пользователи системы могли им затем воспользоваться.
На самом деле эти правила прочно не закреплены. Приложение вправе записывать и хранить данные в соответствии не только с правилами распорядка Windows, но и своими настройками: это удел настроек безопасности. Антивирусы часто хранят логи, карантинные папки и другое в местах “общего пользования”. Но в любом случае, хотя папка ProgramData и является продолжением Application Data, мысль не складировать все данные в одной папке не так уж плоха.
Как вы уже поняли, ничего критичного для работоспособности программы и безопасной с ней работы там просто не может быть. По сути – это обычный кэш запускаемых программ. В отличие, например, от данных в папке по пути:
C:\Пользователи\имя_пользователя\AppData\Roaming
Но, повторюсь, это не жёсткое правило. Разработчик вправе выбрать места для хранения файлов своей программы по усмотрению.
Успехов