Schnellstart: Lokale App-Daten (HTM)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Applies to Windows and Windows Phone

Hier erfahren Sie, wie Sie Einstellungen und Dateien im lokalen Speicher für App-Daten ablegen und von dort abrufen.

Abrufen der Container für die Einstellungen und Dateien der App

Verwenden Sie die ApplicationData.localSettings-Eigenschaft, um die Einstellungen aus einem ApplicationDataContainer-Objekt abzurufen. Verwenden Sie die ApplicationData.localFolder-Eigenschaft, um die Dateien aus einem StorageFolder-Objekt abzurufen.

var localSettings = applicationData.localSettings;
var localFolder = applicationData.localFolder;

In den nächsten Schritten werden die Variablen localSettings und localFolder aus diesem Schritt verwendet.

Schreiben von Daten in eine Einstellung

Verwenden Sie die ApplicationDataContainer.values-Eigenschaft, um auf die Einstellungen im Container localSettings zuzugreifen, den wir im vorherigen Schritt abgerufen haben. In diesem Beispiel wird eine Einstellung namens exampleSetting erstellt.

// Simple setting

localSettings.values["exampleSetting"] = "Hello Windows";

Ein ApplicationDataCompositeValue-Objekt enthält Einstellungen, auf die atomisch zugegriffen werden muss. In diesem Beispiel wird eine Verbundeinstellung namens exampleCompositeSetting erstellt und dem Container localSettings hinzugefügt.

// Composite setting

var composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";

localSettings.values["exampleCompositeSetting"] = composite;

Rufen Sie die ApplicationDataContainer.CreateContainer-Methode auf, um einen Einstellungscontainer zu erstellen. In diesem Beispiel wird ein Einstellungscontainer namens exampleContainer erstellt und eine Einstellung namens exampleSetting hinzugefügt. Der Wert Always aus der ApplicationDataCreateDisposition-Enumeration gibt an, dass der Container erstellt wird, sofern er noch nicht vorhanden ist.

// 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";
}

Lesen von Daten aus einer Einstellung

Verwenden Sie die ApplicationDataContainer.values-Eigenschaft, um auf die Einstellung exampleSetting im Container localSettings zuzugreifen.

// Simple setting

var value = localSettings.values["exampleSetting"];
        
if (!value)
{
    // No data
}
else
{
    // Access data in value
}

Verwenden Sie die ApplicationDataContainer.values-Eigenschaft, um auf die Einstellung exampleCompositeSetting im Container localSettings zuzugreifen.

// Composite setting

var composite = localSettings.values["exampleCompositeSetting"];

if (!composite)
{
    // No data
}
else
{
    // Access data in composite["intVal"] and composite["strVal"]
}

Verwenden Sie die ApplicationDataContainer.values-Eigenschaft, um auf die Einstellung exampleSetting im Container exampleContainer zuzugreifen.

// Setting in a container

var hasContainer = localSettings.containers.hasKey("exampleContainer");

if (hasContainer)
{
    // Access data in localSettings.containers.lookup("exampleContainer").values.hasKey("exampleSetting");
}

Schreiben von Daten in eine Datei

Verwenden Sie die Datei-APIs (beispielsweise Windows.Storage.StorageFolder.createFileAsync und Windows.Storage.FileIO.writeTextAsync), um eine Datei im lokalen App-Datenspeicher zu erstellen und zu aktualisieren. In diesem Beispiel wird im Container localFolder die Datei dataFile.txt erstellt, in die das aktuelle Datum und die Uhrzeit geschrieben werden. Der Wert replaceExisting aus der CreationCollisionOption-Enumeration gibt an, dass die Datei ersetzt werden soll, falls sie bereits vorhanden ist.

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 () {      
      });
}

Lesen von Daten aus einer Datei

Verwenden Sie die Datei-APIs (beispielsweise Windows.Storage.StorageFolder.getFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync und Windows.Storage.FileIO.readTextAsync), um eine Datei im lokalen App-Datenspeicher zu öffnen und zu lesen. In diesem Beispiel wird die im vorherigen Schritt erstellte Datei dataFile.txt geöffnet und das Datum aus der Datei gelesen. Der Wert openIfExists aus der CreationCollisionOption-Aufzählung gibt an, dass die Datei vorhanden sein muss. Einzelheiten zum Laden von Dateiressourcen aus verschiedenen Speicherorten finden Sie unter So wird's gemacht: Laden von Dateiressourcen.

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
      });
}

Löschen nicht mehr benötigter Einstellungen

Rufen Sie die ApplicationDataContainerSettings.remove-Methode auf, um die Einstellung exampleSetting zu löschen, wenn Sie sie nicht mehr benötigen.

// Simple setting

localSettings.values.remove("exampleSetting");

Rufen Sie die ApplicationDataCompositeValue.remove-Methode auf, um die Verbundeinstellung exampleCompositeSetting zu löschen, wenn Sie sie nicht mehr benötigen.

// Delete composite setting

localSettings.values.remove("exampleCompositeSetting");

Rufen Sie die ApplicationDataContainer.deleteContainer-Methode auf, um den Einstellungscontainer exampleContainer zu löschen, wenn Sie ihn nicht mehr benötigen.

// Delete container

localSettings.deleteContainer("exampleContainer");

Verwandte Themen

Aufgabe

So wird's gemacht: Laden von Dateiressourcen

Schnellstart: Roaming von App-Daten

Schnellstart: Temporäre App-Daten

Konzept

Zugreifen auf App-Daten mit der Windows-Runtime

Referenz

Windows.Storage.ApplicationData

Windows.Storage.ApplicationDataCompositeValue

Windows.Storage.ApplicationDataContainer

Windows.Storage.ApplicationDataContainerSettings

Beispiele

Beispiel für Anwendungsdaten