Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
API Importanti
- StorageFile.GetBasicPropertiesAsync
- StorageFile.Properties
- StorageItemContentProperties.RetrievePropertiesAsync
Ottenere proprietà, di primo livello, di base e estese, per un file rappresentato da un oggetto StorageFile.
Annotazioni
Per un esempio completo, vedere l'esempio di accesso ai file.
Prerequisiti
Informazioni sulla programmazione asincrona per le app WinUI
Per informazioni su come scrivere app asincrone in C#, vedere Chiamare API asincrone in C# o Visual Basic. Per informazioni su come scrivere app asincrone in C++, vedere Programmazione asincrona in C++.
Autorizzazioni di accesso alla posizione
Ad esempio, il codice in questi esempi richiede la funzionalità picturesLibrary, ma la posizione potrebbe richiedere una funzionalità diversa o nessuna funzionalità. Per altre informazioni, vedere Autorizzazioni di accesso ai file.
Recupero delle proprietà di primo livello di un file
Molte proprietà di file di primo livello sono accessibili come membri della classe StorageFile . Queste proprietà includono gli attributi dei file, il tipo di contenuto, la data di creazione, il nome visualizzato, il tipo di file e così via.
Annotazioni
Ricordarsi di dichiarare la funzionalità picturesLibrary.
Questo esempio enumera tutti i file nella raccolta Immagini, accedendo ad alcune delle proprietà di primo livello di ogni file.
// 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);
}
Recupero delle proprietà di base di un file
Molte proprietà di file di base vengono ottenute chiamando prima il metodo StorageFile.GetBasicPropertiesAsync . Questo metodo restituisce un oggetto BasicProperties , che definisce le proprietà per le dimensioni dell'elemento (file o cartella) e dell'ultima modifica dell'elemento.
Questo esempio enumera tutti i file nella raccolta Immagini, accedendo ad alcune delle proprietà di base di ogni file.
// 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);
}
Ottenimento delle proprietà estese di un file
A parte le proprietà di primo livello e di base dei file, esistono molte proprietà associate al contenuto del file. Queste proprietà estese sono accessibili chiamando il metodo BasicProperties.RetrievePropertiesAsync . Un oggetto BasicProperties viene ottenuto chiamando la proprietà StorageFile.Properties . Sebbene le proprietà di primo livello e di base dei file siano accessibili come proprietà di una classe, rispettivamente StorageFile e BasicProperties, vengono ottenute proprietà estese passando un insieme IEnumerable di oggetti String che rappresentano i nomi delle proprietà che devono essere recuperate nel metodo BasicProperties.RetrievePropertiesAsync. Questo metodo restituisce quindi un insieme IDictionary . Ogni proprietà estesa viene quindi recuperata dalla raccolta in base al nome o all'indice.
Questo esempio enumera tutti i file nella raccolta Immagini, specifica i nomi delle proprietà desiderate (DataAccessed e FileOwner) in un oggetto List , passa tale oggetto List a BasicProperties.RetrievePropertiesAsync per recuperare tali proprietà e quindi recupera tali proprietà in base al nome dall'oggetto IDictionary restituito.
Per un elenco completo delle proprietà estese di un file, vedi Le proprietà principali di Windows.
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);
}
}