Краткое руководство: локальные данные приложения (HTML)
[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]
Информация о хранении и извлечении параметров и файлов из хранилища локальных данных приложения.
Получение контейнеров для параметров и файлов приложения
Используйте свойство ApplicationData.localSettings для загрузки параметров в объект ApplicationDataContainer. Используйте свойство ApplicationData.localFolder для загрузки файлов в объект StorageFolder.
var localSettings = applicationData.localSettings;
var localFolder = applicationData.localFolder;
Переменные localSettings
и localFolder
из этого шага используются в следующих действиях.
Запись данных в параметр
Используйте свойство ApplicationDataContainer.values для доступа к параметрам в контейнере localSettings
, полученном на предыдущем шаге. В следующем примере создается параметр с именем exampleSetting
.
// Simple setting
localSettings.values["exampleSetting"] = "Hello Windows";
Объект ApplicationDataCompositeValue содержит параметры, доступ к которым должен быть автоматическим. В следующем примере составной параметр с именем exampleCompositeSetting
создается и добавляется в контейнер localSettings
.
// Composite setting
var composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";
localSettings.values["exampleCompositeSetting"] = composite;
Вызовите метод ApplicationDataContainer.CreateContainer, чтобы создать контейнер параметров. В следующем примере создается контейнер параметров с именем exampleContainer
и добавляется параметр с именем exampleSetting
. Значение Always из перечисления ApplicationDataCreateDisposition показывает, что если контейнер не существует, он создается.
// Setting in a container
var container = localSettings.createContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.always);
if (localSettings.containers.hasKey("exampleContainer"))
{
localSettings.containers.lookup("exampleContainer").values["exampleSetting"] = "Hello Windows";
}
Чтение данных из параметра
Используйте свойство ApplicationDataContainer.values для доступа к параметру exampleSetting
в контейнере localSettings
.
// Simple setting
var value = localSettings.values["exampleSetting"];
if (!value)
{
// No data
}
else
{
// Access data in value
}
Используйте свойство ApplicationDataContainer.values для доступа к параметру exampleCompositeSetting
в контейнере localSettings
.
// Composite setting
var composite = localSettings.values["exampleCompositeSetting"];
if (!composite)
{
// No data
}
else
{
// Access data in composite["intVal"] and composite["strVal"]
}
Используйте свойство ApplicationDataContainer.values для доступа к параметру exampleSetting
в контейнере exampleContainer
.
// Setting in a container
var hasContainer = localSettings.containers.hasKey("exampleContainer");
if (hasContainer)
{
// Access data in localSettings.containers.lookup("exampleContainer").values.hasKey("exampleSetting");
}
Запись данных в файл
Для создания и обновления файла в локальном хранилище данных приложения используйте файловые API, такие как Windows.Storage.StorageFolder.createFileAsync и Windows.Storage.FileIO.writeTextAsync. В следующем примере создается файл с именем dataFile.txt
в контейнере localFolder
, и в этот файл записываются текущие дата и время. Значение replaceExisting из перечисления CreationCollisionOption показывает, что если файл уже существует, его следует заменить.
function writeTimestamp() {
localFolder.createFileAsync("dataFile.txt", Windows.Storage.CreationCollisionOption.replaceExisting)
.then(function (sampleFile) {
var formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");
var timestamp = formatter.format(new Date());
return Windows.Storage.FileIO.writeTextAsync(sampleFile, timestamp);
}).done(function () {
});
}
Чтение данных из файла
Для открытия и чтения файла в локальном хранилище данных приложения используйте файловые API, такие как Windows.Storage.StorageFolder.getFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync и Windows.Storage.FileIO.readTextAsync. В следующем примере открывается файл dataFile.txt
, созданный на предыдущем шаге, и из него считывается дата. Значение openIfExists из перечисления CreationCollisionOption показывает, что файл должен существовать. Дополнительные сведения о загрузке файловых ресурсов из различных расположений см. в разделе Загрузка файловых ресурсов.
function readTimestamp() {
localFolder.getFileAsync("dataFile.txt")
.then(function (sampleFile) {
return Windows.Storage.FileIO.readTextAsync(sampleFile);
}).done(function (timestamp) {
// Data is contained in timestamp
}, function () {
// Timestamp not found
});
}
Удаление параметров по завершении их использования
Вызовите метод ApplicationDataContainerSettings.remove для удаления параметра exampleSetting
по завершении его использования.
// Simple setting
localSettings.values.remove("exampleSetting");
Вызовите метод ApplicationDataCompositeValue.remove для удаления составного параметра exampleCompositeSetting
по завершении его использования.
// Delete composite setting
localSettings.values.remove("exampleCompositeSetting");
Вызовите метод ApplicationDataContainer.deleteContainer для удаления контейнера параметров exampleContainer
по завершении его использования.
// Delete container
localSettings.deleteContainer("exampleContainer");
Связанные разделы
Задача
Краткое руководство: перемещаемые данные приложения
Краткое руководство: временные данные приложения
Понятия
Доступ к данным приложения с помощью среды выполнения Windows
Ссылки
Windows.Storage.ApplicationData
Windows.Storage.ApplicationDataCompositeValue
Windows.Storage.ApplicationDataContainer
Windows.Storage.ApplicationDataContainerSettings
Примеры