Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APIs importantes
- StorageFile.GetBasicPropertiesAsync
- StorageFile.Properties
- StorageItemContentProperties.RetrievePropertiesAsync
Obtenha propriedades — de topo, básicas e avançadas — para um ficheiro representado por um objeto StorageFile.
Observação
Para um exemplo completo, consulte o exemplo de acesso ao ficheiro.
Pré-requisitos
Compreenda programação assíncrona para aplicações WinUI
Pode aprender a escrever aplicações assíncronas em C#, veja Chamar APIs assíncronas em C# ou Visual Basic. Para saber como escrever aplicativos assíncronos em C++, consulte Programação assíncrona em C++.
Permissões de acesso ao local
Por exemplo, o código nestes exemplos requer a funcionalidade picturesLibrary, mas a sua localização pode exigir uma capacidade diferente ou nenhuma. Para saber mais, consulte Permissões de acesso a ficheiros.
Obtenção das propriedades de topo de um ficheiro
Muitas propriedades de ficheiros de topo estão acessíveis como membros da classe StorageFile . Estas propriedades incluem os atributos do ficheiro, tipo de conteúdo, data de criação, nome de exibição, tipo de ficheiro, e assim por diante.
Observação
Lembre-se de declarar a capacidade da PicturesLibrary.
Este exemplo enumera todos os ficheiros na biblioteca Pictures, acedendo a algumas das propriedades de topo de cada ficheiro.
// 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);
}
Obter as propriedades básicas de um ficheiro
Muitas propriedades básicas dos ficheiros são obtidas ao chamar primeiro o método StorageFile.GetBasicPropertiesAsync . Este método devolve um objeto BasicProperties , que define propriedades para o tamanho do item (ficheiro ou pasta) bem como para a última modificação do item.
Este exemplo enumera todos os ficheiros na biblioteca Pictures, acedendo a algumas das propriedades básicas de cada ficheiro.
// 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);
}
Obtenção das propriedades estendidas de um ficheiro
Para além das propriedades de topo e básicas do ficheiro, existem muitas propriedades associadas ao conteúdo do ficheiro. Estas propriedades estendidas são acedidas chamando o método BasicProperties.RetrievePropertiesAsync . (Um objeto BasicProperties é obtido ao chamar a propriedade StorageFile.Properties .) Embora as propriedades de ficheiros de topo e basic sejam acessíveis como propriedades de uma classe — StorageFile e BasicProperties, respetivamente — as propriedades estendidas são obtidas ao passar uma coleção IEnumerable de objetos String que representam os nomes das propriedades que devem ser recuperadas para o método BasicProperties.RetrievePropertiesAsync. Este método devolve então uma coleção IDictionary . Em seguida, cada propriedade estendida é recuperada da coleção por nome ou por índice.
Este exemplo enumera todos os ficheiros na biblioteca Pictures, especifica os nomes das propriedades desejadas (DataAccessed e FileOwner) num objeto List , passa esse objeto List para BasicProperties.RetrievePropertiesAsync para recuperar essas propriedades e depois recupera essas propriedades pelo nome do objeto IDictionary devolvido.
Consulte as Propriedades Centrais do Windows para uma lista completa das propriedades estendidas de um ficheiro.
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);
}
}
Windows developer