Windows Dev Center

Language: HTML | XAML

Dateiverarbeitung von A bis Z

Hier erfahren Sie, wie Sie Ihrer Windows Store-App, für die C++, C# oder Visual Basic verwendet und die unter Windows 8.1 ausgeführt wird, Dateiverarbeitungsfunktionen hinzufügen.

In jedem Abschnitt dieses Themas wird ein wichtiges Feature für die Dateiverarbeitung beschrieben. Es ist jeweils ein Link zu einem Thema mit weiteren Informationen vorhanden, und es wird angegeben, wie Sie im Begleitbeispiel zu Dateiverarbeitung von A bis Z des Themas schnell auf den relevanten Code zugreifen können.

Hinweis  Viele Methoden, die zum Interagieren mit Ordnern und Dateien verwendet werden, sind asynchron. Unter Schnellstart: Verwenden des await-Operators zum asynchronen Programmieren erfahren Sie, wie Sie asynchrone Microsoft Visual C#-Apps schreiben.

Grundlagen des Dateizugriffs – Aufzählen, Abrufen von Eigenschaften und Lesen und Schreiben von Daten

Schrittsymbol

Schnellstart: Programmgesteuerter Dateizugriff

Sie können auf Dateien an Speicherorten wie Ordnern, Bibliotheken, Geräten oder Netzwerkadressen zugreifen, indem Sie nur zwei Codezeilen verwenden – einen Aufruf der StorageFolder.GetFilesAsync-Funktion. Unter Schnellstart: Programmgesteuerter Dateizugriff finden Sie Schritt-für-Schritt-Anleitungen, in denen Aufgaben wie das Aufzählen der Dateien und Ordner der höchsten Ebene eines angegebenen Speicherorts und das Abfragen von Dateien an einem Speicherort veranschaulicht werden.

Die folgenden Schritte verdeutlichen, wie Sie Dateien in einem bestimmten Speicherort aufzählen:

  1. Beschaffen Sie ein StorageFolder-Objekt für den gewünschten Speicherort. Dazu verweisen Sie z. B. auf eine der statischen KnownFolders-Eigenschaften, wie KnowFolders.PicturesLibrary.
  2. Rufen Sie die StorageFolder.CreateFileQuery- Methode des zurückgegebenen StorageFolder-Objekts ohne Parameter auf, und geben Sie an, dass alle Ordner und Dateien zurückgegeben werden sollen.
  3. Nach der Rückgabe des StorageFolder.CreateFileQuery- Aufrufs verfügen Sie über ein StorageFileQueryResult- Objekt. Rufen Sie die zugehörige GetFilesAsync- Methode auf.
  4. Die StorageFileQueryResult.GetFilesAsync-Methode gibt eine IReadOnlyList-Auflistung mit StorageFile-Objekten zurück, die Sie mit einer foreach-Schleife durchlaufen können.

In diesem Codebeispiel werden alle Dateien unter „Bilder“ (Pictures) aufgezählt. Es wird eine Visual C#-Erweiterungsmethode verwendet, damit Sie die Dateien an jedem unterstützten Speicherort leicht abfragen können.



// Generic extension method that returns all files for the specified 
// KnownFolders location.
public static async 
Task<System.Collections.Generic.IReadOnlyList<StorageFile>> 
GetLibraryFilesAsync(this StorageFolder folder)
{
    var query = folder.CreateFileQuery();
    return await query.GetFilesAsync();
}

...

// Enumerate all files in Pictures.
var files = await KnownFolders.PicturesLibrary.GetLibraryFilesAsync();

// For each file found ...
foreach (StorageFile file in files)
{
    // ... perform your processing.
}


Dieser Screenshot zeigt ein Beispiel für das Aufzählen der Dateien unter "Bilder".

Screenshot des Dateiverarbeitungsbeispiels zur Aufzählung von Dateien in der Bildbibliothek

Code im Beispiel: Das Codebeispiel enthält eine Seite mit dem Titel File Access Basics (Grundlagen des Dateizugriffs), auf der die in diesem Abschnitt verwendeten Beispiele zu finden sind. Der relevante Visual C#- und XAML-Code ist in den Dateien FileAccessBasicsPage.xaml.cs (OnEnumPicturesClick-Methode) bzw. FileAccessBasicsPage.xaml zusammengefasst (zusammen mit der Erweiterungsmethode in der Datei FileHelper.cs).

Schrittsymbol

Schnellstart: Abrufen der Eigenschaften einer Datei

Mithilfe von Dateieigenschaften wird ein Attribut einer Datei oder ihr Inhalt beschrieben oder quantifiziert. Zu den Dateieigenschaften gehören Daten wie Dateiname, Pfad, Dateigröße, Dateiattribute und das Datum des letzten Zugriffs. Unter Schnellstart: Abrufen der Eigenschaften einer Datei wird erläutert, wie Sie die Eigenschaften der obersten Ebene und die grundlegenden Eigenschaften einer Datei abrufen.

Die folgenden Schritte verdeutlichen, wie Sie entweder Dateieigenschaften der obersten Ebene, grundlegende Dateieigenschaften oder erweiterte Dateieigenschaften abrufen.

In diesem Codebeispiel werden alle Dateien unter "Bilder" aufgezählt und die verschiedenen Dateieigenschaften der obersten Ebene, die grundlegenden Dateieigenschaften und die erweiterten Dateieigenschaften angezeigt.



// Generic extension method that returns all files for the 
// specified KnownFolders location.
public static async Task<IReadOnlyList<StorageFile>> 
GetLibraryFilesAsync(this StorageFolder folder)
{
    var query = folder.CreateFileQuery();
    return await query.GetFilesAsync();
}

...

// Enumerate all files in the Pictures library.
var files = await KnownFolders.PicturesLibrary.GetLibraryFilesAsync();

// For each file found ...
foreach (StorageFile file in files)
{
    // Get top-level file properties.
    StringBuilder fileProperties = new StringBuilder();
    fileProperties.AppendLine("File name: " + file.Name);
    fileProperties.AppendLine("File type: " + file.FileType);

    // Get basic properties.
    BasicProperties basicProperties = await file.GetBasicPropertiesAsync();
    string fileSize = string.Format("{0:n0}", basicProperties.Size);
    fileProperties.AppendLine("File size: " + fileSize + " bytes");
    fileProperties.AppendLine("Date modified: " + basicProperties.DateModified);

    // Specify extended properties to be retrieved.
    List<string> propertiesName = new List<string>();
    propertiesName.Add(dateAccessedProperty);
    propertiesName.Add(fileOwnerProperty);

    // Get extended properties.
    IDictionary<string, object> extraProperties = 
        await file.Properties.RetrievePropertiesAsync(propertiesName);

    // Get LastDateAccessed property.
    var propValue = extraProperties[dateAccessedProperty];
    if (propValue != null)
    {
        fileProperties.AppendLine("Date accessed: " + propValue);
    }

    // Get FileOwner property.
    propValue = extraProperties[fileOwnerProperty];
    if (propValue != null)
    {
        fileProperties.AppendLine("File owner: " + propValue);
    }
}


Dieser Screenshot zeigt die Ergebnisse des Abfragens verschiedener Dateieigenschaften.

Screenshot des Dateiverarbeitungsbeispiels zum Abrufen der Eigenschaften von Dateien

Code im Beispiel: Das Codebeispiel enthält eine Seite mit dem Titel File Access Basics (Grundlagen des Dateizugriffs), auf der die in diesem Abschnitt verwendeten Beispiele zu finden sind. Der gesamte relevante Visual C#- und XAML-Code ist in den Dateien FileAccessBasicsPage.xaml.cs (OnGetFilePropertiesClick-Methode) bzw. FileAccessBasicsPage.xaml zusammengefasst (mit der Erweiterungsmethode in der Datei FileHelper.cs).

Schrittsymbol

Schnellstart: Lesen und Schreiben einer Datei

Eine Windows Store-App liest und schreibt Dateien mithilfe der FileIO-Klasse. Unter Schnellstart: Lesen und Schreiben einer Datei finden Sie Codebeispiele, mit denen veranschaulicht wird, wie verschiedene Arten von Daten mithilfe der FileIO- und StorageFile-Klasse gelesen und geschrieben werden.

Dn263198.wedge(de-de,WIN.10).gifSchreiben von Text in eine Datei

  1. Zum Schreiben in eine Datei müssen Sie zuerst ein StorageFile-Objekt beschaffen, um es an eine der FileIO-Funktionen für das Schreiben von Daten zu übergeben. Im Begleitbeispiel wird hierfür mithilfe der StorageFolder.CreateFileAsync-Funktion eine Datei erstellt.
  2. Sobald Sie über ein StorageFile-Objekt verfügen, können Sie in dessen zugrunde liegende Datei über eine der überladenen FileIO.WriteTextAsync-Funktionen Text schreiben.
In diesem Codebeispiel werden das aktuelle Datum und die aktuelle Uhrzeit in eine Beispieldatei geschrieben.


// Create the sample file; replacing it if it already exists.
StorageFile sampleFile = 
    await KnownFolders.PicturesLibrary.CreateFileAsync(sampleFileName, 
        CreationCollisionOption.ReplaceExisting);

// Write the current timestamp to the sample file.
string sampleFileContents = DateTime.Now.ToString();
await FileIO.WriteTextAsync(sampleFile, sampleFileContents);


Dn263198.wedge(de-de,WIN.10).gifLesen von Text aus einer Datei

  1. Zum Lesen des Inhalts einer Datei müssen Sie zuerst ein StorageFile-Objekt beschaffen, um es an eine der FileIO-Funktionen für das Lesen von Daten zu übergeben. Im Begleitbeispiel wird hierfür die StorageFolder.GetFileAsync-Funktion aufgerufen.
  2. Sobald Sie über ein StorageFile-Objekt verfügen, können Sie über eine der überladenen FileIO.ReadTextAsync-Funktionen Text aus dessen zugrunde liegender Datei lesen.
In diesem Codebeispiel wird der Inhalt aus einer Beispieldatei gelesen.


// Get StorageFile object for sample file.
StorageFile sampleFile = 
    await KnownFolders.PicturesLibrary.GetFileAsync(sampleFileName);

if (sampleFile != null)
{
    // Read and display sample file's contents.
    string fileContent = await FileIO.ReadTextAsync(sampleFile);
}


Dieser Screenshot zeigt eine mögliche Ausführung des Beispiels und das Schreiben in die Beispieldatei.

Screenshot aus Dateiverarbeitungsbeispiel: Schreiben von Textdaten in eine Datei

Code im Beispiel: Das Beispiel enthält eine Seite mit dem Titel File Access Basics (Grundlagen des Dateizugriffs), auf der die in diesem Abschnitt verwendeten Codebeispiele zu finden sind. Der gesamte relevante Visual C#- und XAML-Code ist in den Dateien FileAccessBasicsPage.xaml.cs (Methoden OnWriteTextToFileClick und OnReadTextFromFileClick) und FileAccessBasicsPage.xaml zusammengefasst.

 

Verwenden der Datei- und Ordnerauswahl

Schrittsymbol

Schnellstart: Dateizugriff mit Dateiauswahl

Auswahlelemente – sowohl die Dateiauswahl als auch die Ordnerauswahl – werden zum Anzeigen einer Liste mit Dateien bzw. Ordnern verwendet, aus der Benutzer Elemente zur weiteren Verarbeitung auswählen können. Die Auswahl kann jeweils programmgesteuert so konfiguriert werden, dass anhand eines angegebenen Filters nach Dateien und Ordnern gesucht wird (z. B. Dateien mit speziellen Erweiterungen), bei einem bestimmten Ordner begonnen wird, ein bestimmter Ansichtsmodus angezeigt wird (Liste oder Miniaturansicht) oder verschiedene andere Vorgänge ausgeführt werden.

Mit den folgenden Verfahren wird veranschaulicht, wie Sie eine Datei- oder Ordnerauswahl für unterschiedliche Aufgaben konfigurieren:

Dn263198.wedge(de-de,WIN.10).gifKonfigurieren einer Dateiauswahl für eine einzelne Datei

  1. Instanziieren Sie ein FileOpenPicker-Objekt.
  2. Legen Sie für das FileOpenPicker-Objekt nach Bedarf die Eigenschaften ViewMode, SuggestedStartLocation und FileTypeFilter fest.
  3. Rufen Sie die FileOpenPicker.PickSingleFileAsync -Methode auf. Wenn die FileOpenPicker.PickSingleFileAsync- Methode abgeschlossen ist, verfügt die App über Lese-/Schreibzugriff auf die ausgewählte Datei.
In diesem Codebeispiel wird eine Dateiauswahl zum Auswählen einer einzelnen Datei instanziiert und angezeigt.


public static FileOpenPicker 
CreateFileOpenPicker(this PickerLocationId location, 
                     string[] filters)
{
    FileOpenPicker picker = new FileOpenPicker()
    {
        SuggestedStartLocation = location,
        ViewMode = PickerViewMode.Thumbnail
    };
    foreach (string filter in filters)
    {
        picker.FileTypeFilter.Add(filter);
    }

    return picker;
}

...

// Instantiate/configure picker object.
FileOpenPicker openPicker = 
    PickerLocationId.PicturesLibrary.CreateFileOpenPicker(new string[] 
    { ".jpg", ".jpeg", ".png" });

// Display picker and allow user to select a single file.
StorageFile file = await openPicker.PickSingleFileAsync();

// If the user selected a file ...
if (file != null)
{
    // ... process file as needed.
}
else
{
    // User canceled the operation.
}


Dn263198.wedge(de-de,WIN.10).gifKonfigurieren einer Dateiauswahl für mehrere Dateien

  1. Instanziieren Sie ein FileOpenPicker-Objekt.
  2. Legen Sie für das FileOpenPicker-Objekt nach Bedarf die Eigenschaften ViewMode, SuggestedStartLocation und FileTypeFilter fest.
  3. Rufen Sie die FileOpenPicker.PickMultipleFilesAsync -Methode auf. Wenn die FileOpenPicker.PickMultipleFilesAsync-Methode abgeschlossen ist, verfügt die App über Lese-/Schreibzugriff auf die ausgewählten Dateien. Die ausgewählten Dateien werden mit einer IReadOnlyList-Sammlung dargestellt. Sie können diese Sammlung mit einer foreach-Schleife durchlaufen.
In diesem Codebeispiel wird eine Dateiauswahl zum Auswählen mehrerer Dateien instanziiert und angezeigt.


public static FileOpenPicker 
CreateFileOpenPicker(this PickerLocationId location, 
                     string[] filters)
{
    FileOpenPicker picker = new FileOpenPicker()
    {
        SuggestedStartLocation = location,
        ViewMode = PickerViewMode.Thumbnail
    };
    foreach (string filter in filters)
    {
        picker.FileTypeFilter.Add(filter);
    }

    return picker;
}

...

// Instantiate/configure picker object.
FileOpenPicker openPicker = 
    PickerLocationId.PicturesLibrary.CreateFileOpenPicker(new string[] 
    { ".jpg", ".jpeg", ".png" });

// Display picker and allow user to select multiple files.
IReadOnlyList<StorageFile> files = await openPicker.PickMultipleFilesAsync();

// For each selected file ...
foreach (StorageFile file in files)
{
    // ... process file as needed.
}


Dn263198.wedge(de-de,WIN.10).gifKonfigurieren einer Ordnerauswahl

  1. Instanziieren Sie ein FolderPicker-Objekt.
  2. Legen Sie für das FolderPicker-Objekt nach Bedarf die Eigenschaften ViewMode, SuggestedStartLocation und FolderPicker.FileTypeFilter fest.
  3. Rufen Sie die FolderPicker.PickSingleFolderAsync- Methode auf. Sie gibt ein StorageFolder-Objekt zurück, das den gewählten Ordner darstellt. Wenn die FolderPicker.PickSingleFolderAsync- Methode fertig ist, verfügt die App über Lese-/Schreibzugriff auf den ausgewählten Ordner, einschließlich seiner Unterordner.
In diesem Codebeispiel wird eine Ordnerauswahl instanziiert und angezeigt.

        
public static FolderPicker 
CreateFolderOpenPicker(this PickerLocationId location, 
                       string[] filters)
{
    FolderPicker picker = new FolderPicker()
    {
        SuggestedStartLocation = location,
        ViewMode = PickerViewMode.Thumbnail
    };
    foreach (string filter in filters)
    {
        picker.FileTypeFilter.Add(filter);
    }

    return picker;
}

...

// Instantiate/configure picker object.
FolderPicker folderPicker = 
    PickerLocationId.Desktop.CreateFolderOpenPicker(new string[] 
    { ".jpg", ".jpeg", ".png" });

// Display picker and allow user to select a folder.
StorageFolder folder = await folderPicker.PickSingleFolderAsync();

// If the user selected a folder ...
if (folder != null)
{
    // ... process file as needed.
}
else
{
    // User canceled operation.
}


Dieser Screenshot zeigt die Ergebnisse nach Ausführung des Beispiels und der Auswahl von zwei Dateien („sample1.png“ und „sample2.png“).

Screenshot aus Dateiverarbeitungsbeispiel: Verwenden der Datei- und Ordnerauswahl

Code im Beispiel: Das Beispiel enthält eine Seite mit dem Titel File Picker (Dateiauswahl), auf der die Aufgaben dieses Abschnitts veranschaulicht werden (sowohl für die Dateiauswahl als auch für die Ordnerauswahl). Der Visual C# - und XAML-Code für dieses Beispiel ist in den Dateien FilePickerPage.xaml.cs und FilePickerPage.xaml enthalten, und die Hilfsmethoden befinden sich in der Datei FileHelper.cs.

 

Verwenden von OneDrive-Dateien

Schrittsymbol

Schnellstart: Ermitteln der Verfügbarkeit von OneDrive-Dateien

Unter Windows 8.1 können Benutzer OneDrive-Dateien als "Nur online verfügbar" kennzeichnen. Diese Dateien sind nicht verfügbar, wenn der Benutzer die Verbindung mit OneDrive getrennt hat. Mithilfe der neuen StorageFile.IsAvailable-Eigenschaft können Sie die Verfügbarkeit einer Datei programmgesteuert ermitteln.

Diese Schritte verdeutlichen, wie Sie die Verfügbarkeit von Dateien mit der StorageFile.IsAvailable-Eigenschaft ermitteln.

  1. Beschaffen Sie ein StorageFolder-Objekt für den gewünschten Speicherort. Dazu verweisen Sie z. B. auf eine der statischen KnownFolders-Eigenschaften, wie KnowFolders.PicturesLibrary.
  2. Rufen Sie die StorageFolder.CreateFileQuery- Methode des zurückgegebenen StorageFolder-Objekts ohne Parameter auf, und geben Sie an, dass alle Ordner und Dateien zurückgegeben werden sollen.
  3. Nach der Rückgabe des StorageFolder.CreateFileQuery- Aufrufs verfügen Sie über ein StorageFileQueryResult- Objekt. Rufen Sie die zugehörige GetFilesAsync- Methode auf.
  4. Die StorageFileQueryResult.GetFilesAsync-Methode gibt eine IReadOnlyList-Auflistung mit StorageFile-Objekten zurück, die Sie mit einer foreach-Schleife durchlaufen können.
  5. Verweisen Sie auf die boolesche StorageFile.IsAvailable-Eigenschaft.
In diesem Code werden alle Dateien unter „Bilder“ aufgezählt, und für jede Datei werden der Name, der Anbietername und die Verfügbarkeit angezeigt.


// Generic extension method that returns all files for the 
// specified KnownFolders location.
public static async Task<IReadOnlyList<StorageFile>> 
GetLibraryFilesAsync(this StorageFolder folder)
{
    var query = folder.CreateFileQuery();
    return await query.GetFilesAsync();
}

...

// Display file list with storage provider and availability.
var files = await KnownFolders.PicturesLibrary.GetLibraryFilesAsync();
foreach (StorageFile file in files)
{
    // Reference the file.IsAvailable property as needed.
}   


Screenshot aus Dateiverarbeitungsbeispiel: Verwenden von OneDrive-Dateien

Code im Beispiel: Das Beispiel enthält eine Seite mit dem Titel OneDrive Files (OneDrive-Dateien) und einer Schaltfläche, mit der Sie alle Dateien der Bildbibliothek des lokalen Computers aufzählen können. Zusätzlich zu dem Dateinamen werden der Anbieter ("Dieser PC" oder "OneDrive") und die Verfügbarkeit angezeigt. Der Visual C# - und XAML-Code für dieses Beispiel ist in den Dateien OneDriveFilesPage.xaml.cs und OneDriveFilesPage.xaml enthalten, und die Hilfsmethoden befinden sich in der Datei FileHelper.cs.

 

Fertigstellung

Symbol für die Windows Store-Anforderungen

Verwenden des Zertifizierungskits für Windows-Apps

Empfohlen. Mit der Ausführung des Zertifizierungskits für Windows-Apps können Sie sicherstellen, dass Ihre App die Anforderungen des Windows Store erfüllt. Es ist ratsam, das Kit jeweils auszuführen, wenn Sie der App umfangreichere Funktionen hinzufügen.

Stopp-Symbol

Sie sind fertig! Nachdem Sie jetzt unterschiedliche Funktionen zur Dateiverarbeitung für Ihre App untersucht haben, können Sie eine App wie im Begleitbeispiel zu Dateiverarbeitung von A bis Z erstellen.

 

Interesse an weiteren Informationen?

Schnellstart: Verwenden des await-Operators zum asynchronen Programmieren

Enthält weitere Informationen zur asynchronen Programmierung in C#.

Schnellstart: Programmgesteuerter Dateizugriff

Enthält weitere Informationen zur Aufzählung von Dateien.

Schnellstart: Abrufen der Eigenschaften einer Datei

Enthält weitere Informationen zum Abrufen der Eigenschaften der obersten Ebene, grundlegenden Eigenschaften und erweiterten Eigenschaften einer Datei.

Schnellstart: Lesen und Schreiben einer Datei

Enthält weitere Informationen zum Lesen und Schreiben von Dateien.

Schnellstart: Ermitteln der Verfügbarkeit von OneDrive-Dateien

Enthält weitere Informationen zur Ermittlung der Verfügbarkeit einer Datei.

 

 

Anzeigen:
© 2015 Microsoft