So wird's gemacht: Speichern von Dateien über die Dateiauswahl

Mithilfe von fileSavePicker können Benutzer den Namen und Speicherort zum Speichern von App-Inhalten angeben.

Voraussetzungen

Anweisungen

Schritt 1: Sicherstellen, dass die Dateiauswahl aufgerufen werden kann

Wann immer Sie eine Dateiauswahl aufrufen möchten, müssen Sie zuerst sicherstellen, dass Ihre App die Dateiauswahl anzeigen kann, indem Sie sich davon überzeugen, dass die App nicht angedockt ist oder dass sie zum Anzeigen der Dateiauswahl abgedockt werden kann, falls sie angedockt ist.

Das Beispiel zur Dateiauswahl zeigt, wie der ApplicationView.value einer App überprüft und wie versucht werden kann, sie zu lösen, bevor das Beispiel eine Dateiauswahl generiert und einblendet.


// Verify that we are currently not snapped, or that we can unsnap to open the picker
var currentState = Windows.UI.ViewManagement.ApplicationView.value;
if (currentState === Windows.UI.ViewManagement.ApplicationViewState.snapped &&
    !Windows.UI.ViewManagement.ApplicationView.tryUnsnap()) {
    // Fail silently if we can't unsnap
    return;
}


Warnung  Wenn Sie versuchen, die Dateiauswahl anzuzeigen, während Ihre App angedockt ist, ist der Aufruf nicht erfolgreich, und es tritt eine Ausnahme auf.

Schritt 2: Erstellen und Anpassen der Dateiauswahl zur Anzeige von Speicherorten für Benutzer

Verwenden Sie fileSavePicker, damit Benutzer den Namen, Dateityp und Speicherort von zu speichernden Dateien angeben können. Sie können die Dateiauswahl durch Festlegen von Eigenschaften für das fileSavePicker-Objekt, das Sie erstellen, anpassen.

Im Beispiel zur Dateiauswahl wird veranschaulicht, wie Sie ein fileSavePicker-Objekt erstellen und anpassen.


// Create the picker object and set options
var savePicker = new Windows.Storage.Pickers.FileSavePicker();
savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;
// Dropdown of file types the user can save the file as
savePicker.fileTypeChoices.insert("Plain Text", [".txt"]);
// Default file name if the user does not type one in or select a file to replace
savePicker.suggestedFileName = "New Document";


Sie sollten für die Benutzer und die App relevante fileSavePicker-Eigenschaften festlegen. Richtlinien für die Anpassung der Dateiauswahl finden Sie unter Richtlinien und Prüfliste für die Dateiauswahl.

Im Beispiel zur Dateiauswahl wird die Dateiauswahl mithilfe der drei fileSavePicker-Eigenschaften suggestedStartLocation, fileTypeChoices und suggestedFileName angepasst.

Hinweis  fileSavePicker-Objekte verwenden pickerViewMode.list, um Daten anzuzeigen.

JJ150595.wedge(de-de,WIN.10).gifAnpassen eines fileSavePicker-Objekts im Detail

  1. Da die Benutzer ein Dokument oder eine Textdatei speichern, wird savePicker.suggestedStartLocation im Rahmen des Beispiels mithilfe von PickerLocationId.documentsLibrary auf das Dokument festgelegt.

    
    savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;
    
    

    Sie sollten suggestedStartLocation auf den Dateisystemspeicherort festlegen, der für den ausgewählten Dateityp geeignet ist. Wenn die Benutzer Musik, Bilder oder Videos auswählen, legen Sie Musik, Bilder bzw. Videos als Ausgangsort fest. Bei allen anderen Dateitypen legen Sie die Dokumente als Ausgangsort fest. Es handelt sich nur um einen Ausgangspunkt. Benutzer können innerhalb der Dateiauswahl zu anderen Speicherorten navigieren.

  2. Da sichergestellt werden soll, dass die Datei nach dem Speichern von der App geöffnet werden kann, wird im Beispiel savePicker.fileTypeChoices.insert verwendet, um Dateitypen anzugeben, die vom Beispiel unterstützt werden (Microsoft Word-Dokumente und Textdateien).

    
    savePicker.fileTypeChoices.insert("Plain Text", [".txt"]);
    
    

    Stellen Sie sicher, dass alle angegebenen Dateitypen von Ihrer App unterstützt werden.

    Benutzer können Dateien als einen der von Ihnen in dieser Liste angegebenen Dateityp speichern. Sie können den Dateityp durch Auswählen eines anderen Dateityps (als Sie angegeben haben) über das Dropdownsteuerelement unten rechts in der Dateiauswahl auch ändern. Der erste Dateityp in der Liste wird standardmäßig ausgewählt. Wenn Sie den standardmäßig ausgewählten Dateityp ändern möchten, legen Sie die savePicker.defaultFileExtension-Eigenschaft fest.

    Hinweis  Die Dateiauswahl verwendet den derzeit ausgewählten Dateityp auch, um die angezeigten Dateien zu filtern. Es werden den Benutzern somit nur die Dateitypen angezeigt, die mit den ausgewählten Dateitypen übereinstimmen.

  3. Da den Benutzern unnötige Tastatureingaben erspart werden sollen, wird in diesem Beispiel savePicker.suggestedFileName für die zu speichernde Datei festgelegt.

    
    savePicker.suggestedFileName = "New Document";
    
    

    Versuchen Sie, einen Dateinamen vorzuschlagen, der so relevant wie möglich für die von den Benutzern gespeicherte Datei ist. So können Sie beispielsweise wie in Word den vorhandenen Dateinamen (sofern vorhanden) verwenden oder die erste Dokumentzeile vorschlagen, falls die Benutzer eine Datei speichern, die noch keinen Namen aufweist.

Schritt 3: Anzeigen des fileSavePicker-Objekts zum Speichern einer Datei

Nachdem Sie die Dateiauswahl erstellt und angepasst haben, können Sie es den Benutzern durch Aufrufen von savePicker.pickSaveFileAsync ermöglichen, eine Datei zu speichern.

Nachdem die Benutzer den Namen, Dateityp und Speicherort angegeben und bestätigt haben, dass die Dateien gespeichert werden, gibt pickSaveFileAsync ein storageFile-Objekt zurück, das die gespeicherte Datei darstellt. Sie können diese Datei mit then oder done erfassen und verarbeiten.

Im Beispiel zur Dateiauswahl wird gezeigt, wie die Dateiauswahl angezeigt wird, damit Benutzer eine einzelne Datei auswählen können.


savePicker.pickSaveFileAsync().then(function (file) {
    if (file) {
        // Prevent updates to the remote version of the file until we finish making changes and call CompleteUpdatesAsync.
        Windows.Storage.CachedFileManager.deferUpdates(file);
        // write to file
        Windows.Storage.FileIO.writeTextAsync(file, file.name).done(function () {
            // Let Windows know that we're finished changing the file so the other app can update the remote version of the file.
            // Completing updates may require Windows to ask for user input.
            Windows.Storage.CachedFileManager.completeUpdatesAsync(file).done(function (updateStatus) {
                if (updateStatus === Windows.Storage.Provider.FileUpdateStatus.complete) {
                    WinJS.log && WinJS.log("File " + file.name + " was saved.", "sample", "status");
                } else {
                    WinJS.log && WinJS.log("File " + file.name + " couldn't be saved.", "sample", "status");
                }
            });
        });
    } else {
        WinJS.log && WinJS.log("Operation cancelled.", "sample", "status");
    }
});


Nach dem Speichern der Datei besitzt die App Lese- und Schreibzugriff für diese Datei. Im Beispiel wird die gespeicherte Datei im file-Parametererfasst und die Gültigkeit der Datei überprüft. Die Datei wird jedoch nicht weiter im Beispiel verarbeitet. In Schnellstart: Lesen und Schreiben einer Datei erfahren Sie, wie Sie in die resultierende Datei schreiben und daraus lesen können.

Tipp  Sie sollten vor einer weiteren Verarbeitung immer die Gültigkeit der gespeicherten Datei (file im Beispiel) überprüfen. Anschließend können Sie Inhalte dem Zweck der App entsprechend in der Datei speichern und das entsprechende Verhalten festlegen, falls die ausgewählte Datei nicht gültig ist.

Anmerkungen

Wenn Sie ähnlichen Code wie den hier verwenden, sollte Ihre App den Benutzern die Dateiauswahl anzeigen. Die Benutzer können dann Dateien auswählen, die von der App geöffnet werden. In Schnellstart: Lesen und Schreiben einer Datei erfahren Sie, wie Sie in die resultierende Datei schreiben und daraus lesen können.

Wenn Sie der App den Befehl "Speichern unter" hinzufügen möchten, fügen Sie der Benutzeroberfläche der App ein Steuerelement hinzu, das fileSavePicker aufruft. Weitere Informationen zum Hinzufügen von Steuerelementen finden Sie unter Hinzufügen von Steuerelementen und Inhalten.

Wenn Ihre App einen Speicherort für Benutzer über die Dateiauswahl bereitstellen soll, finden Sie Informationen dazu unter Schnellstart: Integration mit Verträgen für die Dateiauswahl.

Vollständiges Beispiel

Verwandte Themen

Beispiel zur Dateiauswahl
Beispiel zum Dateizugriff
Richtlinien und Prüfliste für die Dateiauswahl
Schnellstart: Dateizugriff mit Dateiauswahl
Schnellstart: Lesen und Schreiben einer Datei
Referenz
Windows.Storage.Pickers
Windows.Storage.Pickers.Provider
Verträge für die Dateiauswahl
Integration mit Verträgen für die Dateiauswahl
Richtlinien und Prüfliste für die Dateiauswahl

 

 

Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.