Compartilhar via


Obter propriedades de arquivo

APIs importantes

Obtenha propriedades de nível superior, básico e estendido para um arquivo representado por um objeto StorageFile.

Observação

Para obter um exemplo completo, consulte o exemplo de acesso ao arquivo .

Pré-requisitos

  • Entenda a programação assíncrona para aplicativos da Plataforma Universal do Windows (UWP)

    Você pode aprender a escrever aplicativos assíncronos no C# ou no Visual Basic, consulte Chamar APIs assíncronas no C# ou no Visual Basic. Para saber como escrever aplicativos assíncronos no C++, consulte programação assíncrona no C++.

  • Permissões de acesso ao local

    Por exemplo, o código nesses exemplos requer a funcionalidade picturesLibrary, mas sua localização pode exigir uma funcionalidade diferente ou nenhuma funcionalidade. Para saber mais, consulte Permissões de acesso a arquivos.

Obtendo as propriedades de nível superior de um arquivo

Muitas propriedades de arquivo de nível superior são acessíveis como membros da classe StorageFile. Essas propriedades incluem os atributos de arquivos, o tipo de conteúdo, a data de criação, o nome de exibição, o tipo de arquivo e assim por diante.

Observação

Lembre-se de declarar a funcionalidade picturesLibrary.

Este exemplo enumera todos os arquivos na biblioteca Imagens, acessando algumas das propriedades de nível superior de cada arquivo.

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

Obtendo as propriedades básicas de um arquivo

Muitas propriedades básicas de arquivo são obtidas primeiro chamando o método StorageFile.GetBasicPropertiesAsync. Esse método retorna um objeto BasicProperties, que define propriedades para o tamanho do item (arquivo ou pasta), bem como quando o item foi modificado pela última vez.

Este exemplo enumera todos os arquivos na biblioteca Imagens, acessando algumas das propriedades básicas de cada arquivo.

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

Obtendo as propriedades estendidas de um arquivo

Além das propriedades de arquivo básicas e de nível superior, há muitas propriedades associadas ao conteúdo do arquivo. Essas propriedades estendidas são acessadas chamando o método BasicProperties.RetrievePropertiesAsync. (Um objeto BasicProperties é obtido chamando a propriedade StorageFile.Properties.) Embora as propriedades de arquivo de nível superior e básico sejam acessíveis como propriedades de uma classe, StorageFile e BasicProperties, respectivamente, as propriedades estendidas são obtidas passando um IEn Coleção de objetos String que representam os nomes das propriedades que devem ser recuperadas para o método BasicProperties.RetrievePropertiesAsync. Esse método retorna uma coleção IDictionary. Cada propriedade estendida é recuperada da coleção por nome ou por índice.

Este exemplo enumera todos os arquivos na biblioteca Imagens, especifica os nomes das propriedades desejadas (DataAccessed e FileOwner) em um objeto Lista , passa esse objeto List para BasicProperties.RetrievePropertiesAsync para recuperar essas propriedades e, em seguida, recupera essas propriedades pelo nome do objeto IDictionary retornado.

Consulte as propriedades do Windows Core para obter uma lista completa das propriedades estendidas de um arquivo.

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