Freigeben über


Dateieigenschaften abrufen

Wichtige APIs

Abrufen von Eigenschaften auf oberster Ebene, Basis- und Erweiterteigenschaften für eine Datei, die durch ein StorageFile--Objekt dargestellt wird.

Hinweis

Ein vollständiges Beispiel finden Sie im Dateizugriffsbeispiel.

Voraussetzungen

  • Grundlegendes zur asynchronen Programmierung für UWP-Apps (Universelle Windows-Plattform)

    Sie können lernen, wie man asynchrone Apps in C# oder Visual Basic schreibt, siehe Aufrufen asynchroner APIs in C# oder Visual Basic. Informationen zum Schreiben asynchroner Apps in C++ finden Sie unter Asynchrone Programmierung in C++-.

  • Zugriffsberechtigungen für den Speicherort

    Der Code in diesen Beispielen erfordert z. B. die picturesLibrary--Funktion, aber Ihr Standort erfordert möglicherweise eine andere Funktion oder gar keine Funktion. Weitere Informationen finden Sie unter Dateizugriffsberechtigungen.

Abrufen der Eigenschaften der obersten Ebene einer Datei

Auf viele Dateieigenschaften der obersten Ebene kann als Member der StorageFile- Klasse zugegriffen werden. Zu diesen Eigenschaften gehören die Dateiattribute, der Inhaltstyp, das Erstellungsdatum, der Anzeigename, der Dateityp usw.

Hinweis

Denken Sie daran, die picturesLibrary-Funktion zu deklarieren.

In diesem Beispiel werden alle Dateien in der Bildbibliothek aufgelistet, und es wird auf einige Eigenschaften der oberster Ebene jeder Datei zugegriffen.

// Enumerate all files in the Pictures library.
var folder = Windows.Storage.KnownFolders.PicturesLibrary;
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync();

foreach (Windows.Storage.StorageFile file in files)
{
    StringBuilder fileProperties = new StringBuilder();

    // Get top-level file properties.
    fileProperties.AppendLine("File name: " + file.Name);
    fileProperties.AppendLine("File type: " + file.FileType);
}

Abrufen der grundlegenden Eigenschaften einer Datei

Viele grundlegende Dateieigenschaften werden abgerufen, indem zuerst die StorageFile.GetBasicPropertiesAsync-Methode aufgerufen wird. Diese Methode gibt ein BasicProperties-Objekt zurück, das Eigenschaften für die Größe des Elements (Datei oder Ordner) sowie beim letzten Ändern des Elements definiert.

In diesem Beispiel werden alle Dateien in der Bildbibliothek aufgelistet, und auf einige grundlegende Eigenschaften jeder Datei zugegriffen.

// Enumerate all files in the Pictures library.
var folder = Windows.Storage.KnownFolders.PicturesLibrary;
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync();

foreach (Windows.Storage.StorageFile file in files)
{
    StringBuilder fileProperties = new StringBuilder();

    // Get file's basic properties.
    Windows.Storage.FileProperties.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);
}

Abrufen der erweiterten Eigenschaften einer Datei

Neben den Eigenschaften der obersten Ebene und grundlegenden Dateieigenschaften gibt es viele Eigenschaften, die dem Inhalt der Datei zugeordnet sind. Auf diese erweiterten Eigenschaften wird durch Aufrufen der BasicProperties.RetrievePropertiesAsync-Methode zugegriffen. (Ein BasicProperties--Objekt wird durch Aufrufen der StorageFile.Properties-Eigenschaft abgerufen.) Während auf Top-Level- und grundlegende Dateieigenschaften als Eigenschaften einer Klasse zugegriffen werden kann –StorageFile- und BasicProperties–, werden erweiterte Eigenschaften abgerufen, indem eine IEnumerable-Auflistung von String--Objekten, die die Namen der abzurufenden Eigenschaften darstellen, an die Methode BasicProperties.RetrievePropertiesAsync übergeben wird. Diese Methode gibt dann eine IDictionary Sammlung zurück. Jede erweiterte Eigenschaft wird dann anhand des Namens oder über den Index aus der Auflistung abgerufen.

In diesem Beispiel werden alle Dateien in der Bildbibliothek aufgelistet, und die Namen der gewünschten Eigenschaften (DataAccessed und FileOwner) in einem List-Objekt angegeben. Dieses List-Objekt wird dann an BasicProperties.RetrievePropertiesAsync übergeben, um diese Eigenschaften abzurufen. Schließlich werden diese Eigenschaften anhand des Namens aus dem zurückgegebenen IDictionary-Objekt abgerufen.

Eine vollständige Liste der erweiterten Eigenschaften einer Datei finden Sie in den Windows Core-Eigenschaften .

const string dateAccessedProperty = "System.DateAccessed";
const string fileOwnerProperty = "System.FileOwner";

// Enumerate all files in the Pictures library.
var folder = KnownFolders.PicturesLibrary;
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync();

foreach (Windows.Storage.StorageFile file in files)
{
    StringBuilder fileProperties = new StringBuilder();

    // Define property names to be retrieved.
    var propertyNames = new List<string>();
    propertyNames.Add(dateAccessedProperty);
    propertyNames.Add(fileOwnerProperty);

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

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

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