So wird's gemacht: Speichern von Dateien über die Dateiauswahl (Windows Store-Apps mit C#/VB/C++ und XAML)

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

Voraussetzungen

Kenntnisse der asynchronen Programmierung für Windows Store-Apps in C# oder Visual Basic

Unter Schnellstart: Verwenden des await-Operators zum asynchronen Programmieren erfahren Sie, wie Sie asynchrone Apps schreiben.

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 eine Methode erstellt werden kann, die den ApplicationView.Value der App überprüft und versucht, sie zu lösen, bevor versucht wird, eine Dateiauswahl zu generieren und einzublenden.


internal bool EnsureUnsnapped()
{
    // FilePicker APIs will not work if the application is in a snapped state.
    // If an app wants to show a FilePicker while snapped, it must attempt to unsnap first
    bool unsnapped = ((ApplicationView.Value != ApplicationViewState.Snapped) || ApplicationView.TryUnsnap());
    if (!unsnapped)
    {
        NotifyUser("Cannot unsnap the sample.", NotifyType.StatusMessage);
    }

    return unsnapped;
}


Sie sollten die Methode zur Überprüfung der Aufrufmöglichkeit der Dateiauswahl wie folgt verwenden:


if (MainPage.Current.EnsureUnsnapped())
{
    // Code to call file picker
}

Wir verwenden die EnsureUnsnapped-Methode immer dann, wenn wir versuchen, eine Dateiauswahl aufzurufen, um sicherzustellen, dass die Beispiel-App die Dateiauswahl erfolgreich einblenden kann. Wie Sie sehen, wird EnsureUnsnapped in einer Reihe von Beispielen auf dieser Seite verwendet. Kontexte dazu finden Sie in der Datei Constants.cs des Beispiels zur Dateiauswahl.

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 des FileSavePicker-Objekts

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.


FileSavePicker savePicker = new FileSavePicker();
savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
// Dropdown of file types the user can save the file as
savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".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 FileSavePickerEigenschaften SuggestedStartLocation, FileTypeChoices und SuggestedFileName angepasst.

JJ150592.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 die Dokumente festgelegt.

    
    savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
    
    

    Sie sollten SuggestedStartLocation auf einen Dateisystemspeicherort festlegen, der für den ausgewählten Dateityp geeignet ist. Wenn die Benutzer Musik, Bilder oder Videos auswählen, legen Sie die 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.Add verwendet, um Dateitypen anzugeben, die vom Beispiel unterstützt werden (Microsoft Word-Dokumente und Textdateien).

    Add ist die für C#-Entwickler vorgesehene Append-Methode.

    
    savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" });
    
    

    Stellen Sie sicher, dass Ihre App alle angegebenen Dateitypen unterstützt.

    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.

Hinweis  FileSavePicker-Objekte zeigen die Dateiauswahl mithilfe von PickerViewMode.List an.

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 mithilfe des await-Operators erfassen und verarbeiten.

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


StorageFile file = await savePicker.PickSaveFileAsync();
if (file != null)
{
    // Prevent updates to the remote version of the file until we finish making changes and call CompleteUpdatesAsync.
    CachedFileManager.DeferUpdates(file);
    // write to file
    await FileIO.WriteTextAsync(file, file.Name);
    // 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.
    FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file);
    if (status == FileUpdateStatus.Complete)
    {
        OutputTextBlock.Text = "File " + file.Name + " was saved.";
    }
    else
    {
        OutputTextBlock.Text = "File " + file.Name + " couldn't be saved.";
    }
}
else
{
    OutputTextBlock.Text = "Operation cancelled.";
}


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) immer ü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 angezeigten Code 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.

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 namespace
Windows.Storage.Pickers.FileSavePicker class
Windows.Storage.StorageFile class
Verträge für die Dateiauswahl
Integration mit Verträgen für die Dateiauswahl
Schnellstart: Integration mit Verträgen für die Dateiauswahl
Richtlinien und Prüfliste für die Dateiauswahl

 

 

Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.