В Windows 8, как ни странно, используется NTFS. В то же время подобие смартфоновской системы не ограничивается только пользовательским интерфейсом; приложения Windows Store имеют такой же ограниченный доступ к файловой системе, как приложения Windows Phone, то есть выполняются в песочнице. Таким образом, каждое приложение имеет свое изолированное хранилище.
Расширение по сравнению со смартфоновской ОС - это отдельное хранилище для каждого зарегистрированного в системе юзера, имеющего доступ к приложению. Каждое изолированное хранилище содержит три папки:
- LocalFolder - предназначена для хранения служебных файлов;
- RoamingFolder - хранит файлы, синхронизируемые на всех девайсах, на которых пользователь использует данное приложение;
- TemporaryFolder - в ней сохраняются временные файлы определенного приложения, но не стоит здесь сохранять что-то ценное, поскольку операционная система время от времени эту папку чистит.
Каждая из перечисленных папок может содержать подкаталоги.
Для сохранения настроек приложение предоставляет хранилища LocalSettings и RoamingSettings: в первом хранятся локальные данные, а второе используется для синхронизации настроек между различными девайсами. Для примера сохраним данные для подключения к веб-ресурсу нашего гипотетического приложения. Добавь на форму два элемента типа TextBox, соответственно для ввода логина и пароля, а также две кнопки (Button): Save и Load. В обработчике первой для сохранения значения напиши (код сокращен):
1 2 |
Windows. Storage. ApplicationData. Current. LocalSettings. _ Values["Login"] = LoginBox.Text; |
Чтобы загрузить значение в обработчике нажатия второй кнопки, осуществим обратный процесс, проверив сперва присутствие значения:
1 2 3 4 5 6 |
var store = Windows.Storage.ApplicationData.Current. LocalSettings; if (store.Values.ContainsKey("Login")) { LoginBox.Text = (string)Windows. Storage. _ ApplicationData.Current.LocalSettings.Values["Login"]; } |
Сохранение данных в отдельное хранилище определенной программы напомнило мне былые времена, когда в Windows отсутствовал реестр и каждое отдельно взятое приложение хранило свои данные в ini-файле. Чтобы получить из приложения доступ к таким системным папкам, как "Документы", "Изображения", "Видео" и другие, нужно объявить об этом в манифесте приложения, открыв файл Package.appxmanifest.
В манифесте приложения настраивается широкий диапазон параметров, сгруппированных и разделенных по вкладкам: "Интерфейс приложения" - здесь настраиваются поддерживаемые ориентации экрана, язык, имя, точка входа, начальная заставка и эмблема; на вкладке "Возможности" как раз присутствуют переключатели для включения доступа к нужным системным папкам, устройствам (камере, микрофону, внешним накопителям]. На вкладке "Объявления" регистрируются события, на которые может отвечать приложение, кроме того, здесь указываются разрешения на выполнение действий. Список "Доступных объявлений" довольно-таки исчерпывающий. И на закладке "Упаковка" указывается имя пакета, версия, семейство и издатель.
Ссылки по теме