1. Главная страница » Компьютеры

Isolatedstorage что это за папка

Автор: | 16.12.2019

Коду Silverlight запрещено записывать информацию в произвольное место фай­ловой системы и считывать оттуда. Очевидно, что если бы это было разрешено, была бы нарушена безопасность браузера. Однако во многих случаях приложениям Silverlight нужно сохранять информацию надолго. Для этого используется изолирован­ное хранилище (isolated storage).

предоставляет коду доступ к небольшому сегменту жест­кого диска с определенными ограничениями. Например, приложение не знает точно, куда будут записаны сохраняемые файлы. Кроме того, приложение не может читать файлы, записанные другим приложением или другим пользователем. Обычно инфор­мация извлекается из хранилища при следующем выполнении приложения.

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

Новые средства. В Silverlight 3 добавлен класс SaveFileDialog, дополняющий существовавший класс OpenFileDialog и предоставляющий возможность сохранить заданный пользователем файл за пределами изолированного хранилища. Класс SaveFileDialog рассматривается в конце главы.

Концепция изолированного хранилища

предоставляет виртуальную файловую систему, которая позволяет сохранять данные, специфичные для приложения и пользователя. Объем со­храняемых данных по умолчанию не может превышать 1 Мбайт. Приложение может попросить пользователя задать больший объем.

Создаваемое приложением Silverlight изолированное хранилище немного похоже на файлы cookie, создаваемые веб-страницей. Браузер управляет изолированным храни­лищем, предотвращая попытки заполнить диск или вмешаться в файловую систему.

Область видимости изолированного хранилища

Уникальное изолированное хранилище создается для каждой комбинации пользова­телей и приложений. Это означает, что приложение может создать много хранилищ, по одному для каждого пользователя. Аналогично для пользователя может быть создано много хранилищ, по одному для каждого приложения Silverlight. Изолированное храни­лище не является специфичным для конкретного браузера. Например, запуская прило­жение сначала в Internet Explorer, а затем в Firefox, пользователь имеет доступ к одному и тому же хранилищу.

Примечание. Пользователь с правами администратора Windows имеет доступ к изолированным хранилищам других пользователей.

Критически важным фактором, служащим для идентификации приложения Silverlight, является адрес URL файла ХАР. Это означает следующее.

• Разные файлы ХАР, размещенные в одной и той же папке одного и того же веб­сервера, имеют разные изолированные хранилища.

• Если веб-сайт хостируется в разных доменах, каждый экземпляр сайта получит собственное изолированное хранилище.

• Разные тестовые страницы, хостирующие одно и то же приложение Silverlight, пользуются одним и тем же изолированным хранилищем.

• Если переименовать папку или файл ХАР, приложение получит новое изолиро­ванное хранилище.

• Если изменить идентификатор GUID, версию или другие метаданные приложе­ния Silverlight, оно получит доступ к прежнему изолированному хранилищу.

• Если заменить одно приложение Silverlight другим, но с тем же именем файла ХАР, оно получит доступ к изолированному хранилищу предыдущего приложения.

Что хранят в изолированных хранилищах

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

В изолированном хранилище (в отличие от кеша браузера) данные хранятся посто­янно, срока годности у них нет. Кроме того, содержимое хранилища не удаляется, когда пользователь явно удаляет временные файлы Интернета. Однако изолированное хра­нилище — не очень подходящее место для хранения важных документов, потому что в нем не создается резервная копия, и его содержимое легко случайно удалить (например, если пользователь изменяет регистрационную информацию). Кроме того, изолирован­ное хранилище не пригодно для кеширования ресурсов (например, внешних изображе­ний и мультимедийных файлов). При создании приложения Silverlight часто возникает искушение сохранять в нем что угодно, однако не забывайте, что оно предназначено для небольшого объема данных и не является заменителем кеша HTTP.

Использование изолированного хранилища

Изолированные хранилища легко использовать, потому что они основаны на той же потоковой модели, что и доступ к обычным файлам в .NET. Для доступа к изолирован­ному хранилищу используются типы пространства имен System. 10. IsolatedStorage, являющегося базовой частью инфраструктуры Silverlight.

Открытие изолированного хранилища

Надстройка Silverlight создает изолированное хранилище автоматически. Для взаимодействия с ним используется класс IsolatedStorageFile. Получить объект isolatedStorageFile для текущего пользователя и приложения можно, вызвав стати­ческий метод IsolatedStorageFile.GetUserStoreForApplicationО.

IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();

Метод возвращает именно то, что обычно нужно, — специфичное для пользователя место, в котором можно хранить данные. Однако в классе IsolatedStorageFile есть еще один похожий статический метод GetUserStoreForSite (). Он предоставляет для хранения сайт в текущем домене, доступный для всех приложений Silverlight, но только для текущего пользователя. Обычно он используется при разработке группы приложе­ний Silverlight, когда нужно хранить для них общую информацию.

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

Имя класса IsolatedStorageFile может ввести в заблуждение, потому что он пред­ставляет не один файл, а коллекцию файлов, находящихся в хранилище. Методы клас­са IsolatedStorageFile аналогичны методам управления файлами, представленными в классах File и Directory полнофункциональных приложений .NET. Наиболее важные методы приведены в табл. 18.1.

Таблица 18.1. Методы класса IsolatedStorageFile, предназначенные для управления файлами

Создание в хранилище новой папки с заданным именем

Silverlight использует Isolated Storage, как виртуальную файловую систему для хранения данных в скрытых папках на вашем компьютере. Он делит данные на две части: первая содержит служебную информацию такую, как размер выделенного дискового пространства. Вторая же содержит собственно данные. Любое приложение Silverlight получает собственную порцию выделенного пространства, которое по умолчанию равно 1 мегабайту.

Преимущества:

  1. Isolated Storage является прекрасной альтернативой использованию куки, особенно, если вы работаете с большими объемами данных. Например, когда вы реализуете undo функциональность в вашем приложении, выбранные товары в корзине, настройки окна и любые другие настройки, которые ваше приложение может прочесть при следующем сеансе.
  2. Isolated Storage хранит данные разных пользователей раздельно, что позволяет и серверной части разделять уникальные пользовательские настройки.

Потенциальные ловушки:

  1. Системные администраторы могут ограничивать дисковое пространство, выделяемое для этих целей, что не гарантирует наличия достаточного пространства. Поэтому важно добавить обработку такого рода исключений в ваш код.
  2. Не смотря на то, что Isolated Storage находится в скрытой папке, эта папка все же может быть найдена с минимальными усилиями. Таким образом, эти данные не являются абсолютно безопасными, т.к. пользователь может их изменить или вовсе удалить. Вы можете использовать криптографические классы для шифрования данных, чтобы предотвратить их изменения пользователем.
  3. Системные администраторы могут и вовсе запретить запись в Isolated Storage. Код должен иметь IsolatedStorageFilePermission для того, что писать в Isolated Storage.

Подытоживая выше сказанное, давайте посмотрим, как мы сохранять и читать данные. Обратите внимание на то, что вам понадобится добавлять ссылки и на System.IO.IsolatedStorage, и на System.IO пространства имен.

Авторские права Майка Сноу. Переведено с разрешения Майка Сноу.

Определение

Предоставляет область изолированного хранилища, в которой содержатся файлы и каталоги. Represents an isolated storage area containing files and directories.

Примеры

В примере кода ниже показано, как создавать файлы и каталоги в изолированном хранилище. The following code example illustrates how to create files and directories in an isolated store. Сначала извлекается хранилище, изолированное по пользователю, домену и сборке, и помещается в переменную isoStore . First, a store that is isolated by user, domain, and assembly is retrieved and placed in the isoStore variable. Затем метод CreateDirectory вызывается для создания каталогов, и два экземпляра класса IsolatedStorageFileStream создают файлы в этих каталогах. The CreateDirectory method is then called to create directories, and two instances of the IsolatedStorageFileStream class create files in these directories.

Комментарии

Этот объект соответствует определенной области изолированного хранения, где существуют файлы, представленные объектами IsolatedStorageFileStream. This object corresponds to a specific isolated storage scope, where files represented by IsolatedStorageFileStream objects exist. Приложения могут использовать изолированное хранилище для сохранения данных в собственной изолированной части файловой системы без указания определенного пути в файловой системе. Applications can use isolated storage to save data in their own isolated portion of the file system, without having to specify a particular path within the file system. Так как изолированные хранилища ограничены определенными сборками, большинство других управляемых программного кода не смогут получить доступ к данным вашего кода (высоко доверенный управляемый код и средства администрирования могут получать доступ к хранилищам из других сборок). Since isolated stores are scoped to particular assemblies, most other managed code will not be able to access your code’s data (highly trusted managed code and administration tools can access stores from other assemblies). Неуправляемый код может обращаться к любому изолированному хранилищу. Unmanaged code can access any isolated stores.

Для получения дополнительной информации см. Изолированное хранилище. For more information, see Isolated Storage.

Этот тип реализует интерфейс IDisposable. This type implements the IDisposable interface. По окончании использования выдаленную ему память следует прямо или косвенно освободить. When you have finished using the type, you should dispose of it either directly or indirectly. Чтобы сделать это прямо, вызовите его метод Dispose в блоке try / catch . To dispose of the type directly, call its Dispose method in a try / catch block. Чтобы сделать это косвенно, используйте языковые конструкции, такие как using (в C#) или Using (в Visual Basic). To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Дополнительные сведения см. в разделе "Использование объекта, реализующего IDisposable" в статье об интерфейсе IDisposable. For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

Изолированное хранилище недоступно для приложений Windows Магазин Windows 8.x Windows 8.x Store . Isolated storage is not available for Магазин Windows 8.x Windows 8.x Store apps. Вместо этого используйте классы данных приложений в пространствах имен Windows.Storage , включенных в API Среда выполнения Windows Windows Runtime для хранения локальных данных и файлов. Instead, use the application data classes in the Windows.Storage namespaces included in the Среда выполнения Windows Windows Runtime API to store local data and files. Дополнительные сведения см. в статье Доступ к данным приложения в Центре разработки для Windows. For more information, see Application data in the Windows Dev Center.

Свойства

Получает значение, показывающее объем свободного пространства, доступного для изолированного хранилища. Gets a value that represents the amount of free space available for isolated storage.

Получает текущий размер изолированного хранения. Gets the current size of the isolated storage.

Получает значение, указывающее, включено ли изолированное хранилище. Gets a value that indicates whether isolated storage is enabled.

Возвращает значение, представляющее максимальный размер области, доступной для изолированного хранения в пределах, установленных квотой. Gets a value representing the maximum amount of space available for isolated storage within the limits established by the quota.

Получает значение, представляющее максимальный объем свободного пространства, доступного для изолированной памяти. Gets a value that represents the maximum amount of space available for isolated storage.

Получает значение, показывающее объем пространства, используемого для изолированного хранилища. Gets a value that represents the amount of the space used for isolated storage.

Методы

Копирует существующий файл в новый файл. Copies an existing file to a new file.

Копирует существующий файл в новый файл и, возможно, перезаписывает существующий файл. Copies an existing file to a new file, and optionally overwrites an existing file.

Создает в области ограниченного действия изолированного хранения папку. Creates a directory in the isolated storage scope.

Создает файл в изолированном хранилище. Creates a file in the isolated store.

Удаляет из области ограниченного действия изолированного хранилища папку. Deletes a directory in the isolated storage scope.

Удаляет из области ограниченного действия изолированного хранилища файл. Deletes a file in the isolated storage scope.

Определяет, указывает ли заданный путь на существующий каталог в изолированном хранилище. Determines whether the specified path refers to an existing directory in the isolated store.

Освобождает все ресурсы, занятые модулем IsolatedStorageFile. Releases all resources used by the IsolatedStorageFile.

Определяет, равен ли заданный объект текущему объекту. Determines whether the specified object is equal to the current object.

(Унаследовано от Object)

FileExists(String)

Определяет, указывает ли заданный путь на существующий файл в изолированном хранилище. Determines whether the specified path refers to an existing file in the isolated store.

Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как он будет уничтожен во время сборки мусора. Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

Возвращает дату и время создания заданного файла или каталога. Returns the creation date and time of a specified file or directory.

Перечисляет каталоги в корневой папке изолированного хранилища. Enumerates the directories at the root of an isolated store.

Перечисляет каталоги в области изолированного хранилища, соответствующие заданному шаблону поиска. Enumerates the directories in an isolated storage scope that match a given search pattern.

Возвращает счетчик для хранилищ IsolatedStorageFile в области ограниченного действия изолированного хранения. Gets the enumerator for the IsolatedStorageFile stores within an isolated storage scope.

Перечисляет имена файлов в корневой папке изолированного хранилища. Enumerates the file names at the root of an isolated store.

Получает имена файлов, соответствующие шаблону поиска. Gets the file names that match a search pattern.

Служит хэш-функцией по умолчанию. Serves as the default hash function.

(Унаследовано от Object)

GetLastAccessTime(String)

Возвращает дату и время последнего обращения к указанному файлу или каталогу. Returns the date and time a specified file or directory was last accessed.

Возвращает дату и время последней операции записи в указанный файл или каталог. Returns the date and time a specified file or directory was last written to.

Получает изолированное хранение с областью действия компьютера, соответствующее вызову удостоверения приложения кода. Obtains machine-scoped isolated storage corresponding to the calling code’s application identity.

Получает изолированное хранение с областью действия компьютера, соответствующее вызову удостоверения сборки кода. Obtains machine-scoped isolated storage corresponding to the calling code’s assembly identity.

Возвращает изолированное хранение с областью действия компьютера, соответствующее удостоверению домена приложения и сборки. Obtains machine-scoped isolated storage corresponding to the application domain identity and the assembly identity.

Возвращает изолированное хранение, соответствующее объектам и типам данного домена приложения и свидетельства сборки. Obtains isolated storage corresponding to the given application domain and the assembly evidence objects and types.

Получает изолированное хранение, соответствующее данному удостоверению приложения. Obtains isolated storage corresponding to the given application identity.

Возвращает изолированное хранение, соответствующее объектам данного домена приложения и свидетельства сборки. Obtains the isolated storage corresponding to the given application domain and assembly evidence objects.

Получает изолированное хранение, соответствующее области изоляции и объекту удостоверения приложения. Obtains isolated storage corresponding to the isolation scope and the application identity object.

Получает изолированное хранение, соответствующее области ограниченного действия изолированного хранения, предоставляющей типы домена приложения и свидетельства сборки. Obtains isolated storage corresponding to the isolated storage scope given the application domain and assembly evidence types.

Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.

(Унаследовано от Object)

GetUserStoreForApplication()

Получает изолированное хранение с областью действия пользователя, соответствующее вызову удостоверения приложения кода. Obtains user-scoped isolated storage corresponding to the calling code’s application identity.

Получает изолированное хранение с областью действия пользователя, соответствующее вызову удостоверения сборки кода. Obtains user-scoped isolated storage corresponding to the calling code’s assembly identity.

Получает изолированную область хранения с областью действия пользователя, соответствующую удостоверению домена приложения и удостоверению сборки. Obtains user-scoped isolated storage corresponding to the application domain identity and assembly identity.

Получает изолированное хранилище с определенной пользователем областью действия для использования приложениями в домене виртуального узла. Obtains a user-scoped isolated store for use by applications in a virtual host domain.

Позволяет приложению в явной форме запросить больший размер квоты в байтах. Enables an application to explicitly request a larger quota size, in bytes.

Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.

(Унаследовано от Object)

MoveDirectory(String, String)

Перемещает указанный каталог и его содержимое в новое расположение. Moves a specified directory and its contents to a new location.

Перемещает указанный файл в новое расположение и позволяет указать для файла новое имя. Moves a specified file to a new location, and optionally lets you specify a new file name.

Открывает файл в заданном режиме. Opens a file in the specified mode.

Открывает файл в заданном режиме с заданным доступом для чтения и записи. Opens a file in the specified mode with the specified read/write access.

Открывает файл в заданном режиме, с заданным уровнем доступа для чтения и записи и с разрешением на совместный доступ. Opens a file in the specified mode, with the specified read/write access and sharing permission.

Удаляет область ограниченного действия изолированного хранения со всем ее содержимым. Removes the isolated storage scope and all its contents.

Удаляет для всех удостоверений указанную область ограниченного действия изолированного хранения. Removes the specified isolated storage scope for all identities.

Возвращает строку, представляющую текущий объект. Returns a string that represents the current object.

Читайте также:  K meleon 76 pro rc

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *