Compartir a través de


Obtener propiedades de archivo

Las APIs importantes

Obtiene propiedades (nivel superior, básico y extendido) para un archivo representado por un objeto StorageFile.

Nota:

Para obtener un ejemplo completo, consulte el ejemplo de acceso a archivos .

Prerrequisitos

  • Comprender la programación asincrónica para aplicaciones para la Plataforma universal de Windows (UWP)

    Puede aprender a escribir aplicaciones asincrónicas en C# o Visual Basic, consulte Llamada a API asincrónicas en C# o Visual Basic. Para obtener información sobre cómo escribir aplicaciones asincrónicas en C++, consulte programación asincrónica en C++.

  • Permisos de acceso a la ubicación

    Por ejemplo, el código de estos ejemplos requiere la funcionalidad picturesLibrary, pero la ubicación puede requerir una funcionalidad diferente o ninguna funcionalidad. Para obtener más información, consulte Permisos de Acceso a Archivos.

Obtención de las propiedades de nivel superior de un archivo

Muchas propiedades de archivo de alto nivel son accesibles como miembros de la clase StorageFile. Estas propiedades incluyen los atributos de los archivos, el tipo de contenido, la fecha de creación, el nombre para mostrar, el tipo de archivo, etc.

Nota:

Recuerde declarar la funcionalidad de picturesLibrary.

En este ejemplo se enumeran todos los archivos de la biblioteca imágenes, con acceso a algunas de las propiedades de nivel superior de cada archivo.

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

Obtención de las propiedades básicas de un archivo

Muchas propiedades básicas de archivo se obtienen llamando primero al método StorageFile.GetBasicPropertiesAsync. Este método devuelve un objeto BasicProperties, que define las propiedades para el tamaño del elemento (archivo o carpeta), así como cuando se modificó por última vez el elemento.

En este ejemplo se enumeran todos los archivos de la biblioteca imágenes, con acceso a algunas de las propiedades básicas de cada archivo.

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

Obtención de las propiedades extendidas de un archivo

Aparte de las propiedades de archivo de nivel superior y básico, hay muchas propiedades asociadas al contenido del archivo. Para acceder a estas propiedades extendidas, se llama al método BasicProperties.RetrievePropertiesAsync. (Se obtiene un objeto BasicProperties llamando a la propiedad StorageFile.Properties). Aunque se puede acceder a las propiedades de archivo básicas y de nivel superior como propiedades de una clase(StorageFile y BasicProperties, respectivamente, las propiedades extendidas se obtienen pasando un I Colección de objetos String que representan los nombres de las propiedades que se van a recuperar en el método BasicProperties.RetrievePropertiesAsync. A continuación, este método devuelve una colección IDictionary. A continuación, cada propiedad extendida se recupera de la colección por nombre o por índice.

En este ejemplo se enumeran todos los archivos de la biblioteca Imágenes, se especifican los nombres de las propiedades deseadas (DataAccessed y FileOwner) en un objeto list , pasa ese List objeto a BasicProperties.RetrievePropertiesAsync para recuperar esas propiedades y, a continuación, recupera esas propiedades por nombre del objeto IDictionary devuelto.

Consulta las Propiedades principales de Windows para obtener una lista completa de las propiedades extendidas de un archivo.

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