Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базовые технологии платформы .NET.docx
Скачиваний:
13
Добавлен:
03.11.2018
Размер:
614.46 Кб
Скачать

Изолированные хранилища

Изолированное хранилище (isolated storage) – механизм, позволяющий сохранять данные приложения на компьютере локального пользователя без предоставления прав доступа к файлам, базам данных и реестру.

Изолированное хранилище предлагает следующие области изоляции:

1. Изоляция по пользователю:

  • хранилище конкретного пользователя;

  • хранилище компьютера.

2. Изоляция по коду:

  • хранилище приложения;

  • хранилище сборки;

  • хранилище домена.

Управление изолированным хранилищем выполняется при помощи класса System.IO.IsolatedStorage.IsolatedStorageFile, основные методы которого перечислены в табл. 22.

Таблица 22

Методы класса IsolatedStorageFile

Имя элемента

Описание

Close()

Закрывает хранилище

CreateDirectory()

Создаёт каталог в изолированном хранилище

DeleteDirectory()

Удаляет каталог в изолированном хранилище

DeleteFile()

Удаляет из изолированного хранилища файл

GetDirectoryNames()

Получает список каталогов изолированного хранилища, соответствующий шаблону поиска

GetFileNames()

Получает список файлов изолированного хранилища, соответствующий шаблону поиска

GetMachineStoreForApplication()

Получает изолированное хранилище, соответствующее приложению, с областью действия компьютера (стат. метод)

GetMachineStoreForAssembly()

Получает изолированное хранилище, соответствующее сборке, с областью действия компьютера (стат. метод)

GetMachineStoreForDomain()

Получает изолированное хранилище, соответствующее домену, с областью действия компьютера (статический метод)

GetStore()

Получает изолированное хранилище, соответствующее указанным данным изоляции по коду и пользователю (статический метод)

GetUserStoreForApplication()

Получает изолированное хранилище, соответствующее приложению, с областью действия пользователя (стат. метод)

GetUserStoreForAssembly()

Получает изолированное хранилище, соответствующее сборке, с областью действия пользователя (стат. метод)

GetUserStoreForDomain()

Получает изолированное хранилище, соответствующее домену, с областью действия пользователя (стат. метод)

InitStore()

Инициализирует новый объект изолированного хранилища

Remove()

Удаляет изолированное хранилище со всем ее содержимым (статический метод)

Класс System.IO.IsolatedStorage.IsolatedStorageFileStream – это поток, который позволяет читать и записывать данные в файлы изолированного хранилища.

Продемонстрируем работу с рассмотренными классами:

// получаем хранилище текущего пользователя и домена

var storage = IsolatedStorageFile.GetUserStoreForDomain();

// создаём подкаталог

storage.CreateDirectory("data");

// открываем или создаём файл (макс. размер = 10K)

var isoStream = new IsolatedStorageFileStream(@"data\file.txt",

FileMode.OpenOrCreate,

FileAccess.Write,

FileShare.Write,

10240,

storage);

// пишем в поток

isoStream.Position = 0;

var writer = new StreamWriter(isoStream);

writer.WriteLine("Useful Info");

// выводим информацию о хранилище

Console.WriteLine("CurrentSize = " + storage.CurrentSize);

Console.WriteLine("MaximumSize = " + storage.MaximumSize);

// закрываем поток и хранилище

writer.Close();

storage.Close();