Краткое руководство: локальные данные приложения (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Applies to Windows and Windows Phone

Информация о хранении и извлечении параметров и файлов из хранилища локальных данных приложения.

Получение контейнеров для параметров и файлов приложения

Используйте свойство 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

Примеры

Пример данных приложения