2012-03-14 3 views
32

В моей системе %AppData% приводит к ApplicationData, который C:\Users\<USER>\AppData\RoamingРазница между 'SpecialFolder.LocalApplicationData' и 'SpecialFolder.ApplicationData'?

Но есть C:\Users\<USER>\AppData\Local
И еще какое-то замешательство D:\Users\<USER>\AppData\LocalLow

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

Мой вопрос, какой из этих мест должно сохранить мое приложение его данные?

Есть ли рекомендации по использованию этих мест? И я оставляю себя открытым для проблем, если я выбираю неправильное место?

+0

Папка «Роуминг» чаще всего используется для хранения данных. Я не знаю, какая разница. –

ответ

44

Папка Roaming копируется между машинами при включении перемещаемых профилей (в среде домена). Используйте его для данных приложения, которые вы хотите разделить между машинами. Но не храните большие файлы там - ИТ-подразделениям это не нравится, когда вы это делаете, и это увеличивает время, необходимое пользователю для входа в систему и выхода из системы при копировании файлов.

Папка Local не копируется между машинами. Используйте его для данных приложения, специфичных для машины.

Папка LocalLow используется для задач с низким уровнем привилегий (например, Internet Explorer). Вам не нужно беспокоиться об этом.

Для файлов, которые пользователь сохранил, вы должны поместить их (по умолчанию) в папку Documents.

+1

Любые мысли о том, как эти папки используются для пользователя Windows 8, который зарегистрирован на компьютере с учетной записью Microsoft?Является ли приложение для Windows 8 совершенно другим зверьком, с его собственными API и т. Д., А используемые папки различаются/опосредуются API? Является ли пользователь Windows 8 зарегистрированным в учетной записи MS «перемещающимся пользователем»? – Bill

9

Согласно MSDN разница в том, что LocalApplicationData остается на локальной машине и не бродить ... ApplicationData делает бродить, например, если пользователь входит в домен с другого компьютера, он будет синхронизирован ...

LocalLow относится к конкретным ситуациям типа BHO, работающим в «Защищенном режиме» IE ...

Для стандартного применения всегда используйте ApplicationData. Используйте LocalApplicationData для вещей, которые НЕ должны перемещаться вместе с пользователем ...

1

Из MSDN - Environment.SpecialFolder Enumeration:

ApplicationData - каталог, который служит в качестве общего хранилища для конкретных приложений данных для текущего пользователя роуминга. Роуминг-пользователь работает на нескольких компьютерах в сети. Профиль роумингового пользователя хранится на сервере в сети и загружается в систему, когда пользователь входит в систему.

LocalApplicationData Каталог, который служит в качестве общего репозитория для данных конкретных приложений, которые используются текущим, не-роуминговым пользователем.

Короче говоря, использовать ApplicationData для перемещаемых профилей и LocalApplicationData для не перемещаемых профилей.

 Смежные вопросы

  • Нет связанных вопросов^_^