Программирование на языке си ( с ) | C Sharp (Си шарп) с нуля. Сортировки | Массивы | Функции

Изолированное хранилище ( запись и чтение ) « IsolatedStorageFile »

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

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

Для преодоления этой проблемы в среде .NET существует такое понятие, как изолированное хранилище. Изолированное хранилище доступно даже, если у пользователя нету привилегий в файловой системе. Т.е. если такой пользователь будет работать с программой, которая хранит файлы в изолированном хранилище, то у него проблем не будет.

В среде .NET разработан специальный класс - IsolatedStorageFile. Класс IsolatedStorageFile служит для создания различных файлов и папок в изолированном хранилище. Давайте посмотрим, как же все-таки создается изолированном хранилище.

Но перед записью данных в это хранилище нам так же потребуется определить его область действия. Вот два варианта:

  1. хранилище уровня пользователя
  2. IsolatedStorageFile user = IsolatedStorageFile.GetUserStoreForAssembly();

    содержится информация специфичная для данного пользователя

  3. хранилище уровня компьютера
  4. IsolatedStorageFile machine = IsolatedStorageFile.GetMachineStoreForAssembly();

    в изолированном хранилище содержится информация специфичная для локального компьютера и сборки

   Запись и чтение в изолированное хранилище

Для создания файлов в файловой системе существовал класс FileStream, отвечающий за потоковый ввод-вывод данных. Изолированное хранилище так же имеет специальный класс, отвечающих за создание файлов в изолированном хранилище - IsolatedStorageFileStream. Этот класс является потомком от класса FileStream, поэтому работа точно такая же с ним, как с обычными файлами:

IsolatedStorageFile user = IsolatedStorageFile.GetUserStoreForAssembly();
IsolatedStorageFileStream stream = new IsolatedStorageFileStream ("file.txt", FileMode.Create, user);

Т.е. сначала создаем объект нашего хранилища. Для создания потока создаем специальный потоковый класс. В конструктор которого передаем:

  1. имя файла
  2. режим (открытие или создание файла/папки)
  3. объект хранилища

А вот как записывать данные в созданный файл:

StreamWriter str = new StreamWriter (stream);
str.WriteLine ("Запись первой строчки");
str.Close();

Для открытия файла для чтения достаточно просто поменять режим. Т.е. в первом примере вместо FileMode.Creat нужно написать FileMode.Open

Часто уже упоминалось, что можно создавать не только файлы, но и папки. Вот как создать папку в хранилище:

IsolatedStorageFile user = IsolatedStorageFile.GetUserStoreForAssembly(); user.CreateDirectory("Новая папка");

Рекомендации к прочтению:

  1. Регулярные выражения
  2. Консольный ввод / вывод
При копировании ( использовании ) материала размещайте ссылку на сайт www.mir-koda.ru