Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
důležitá rozhraní API
- StorageFile.GetBasicPropertiesAsync
- StorageFile.Properties
- StorageItemContentProperties.RetrievePropertiesAsync
Získejte vlastnosti – nejvyšší úroveň, základní a rozšířené – pro soubor reprezentovaný objektem StorageFile .
Poznámka:
Kompletní ukázku najdete v ukázce přístupu k souboru.
Předpoklady
Principy asynchronního programování pro aplikace WinUI
Dozvíte se, jak psát asynchronní aplikace v jazyce C#, viz Volání asynchronních rozhraní API v jazyce C# nebo Visual Basic. Informace o tom, jak psát asynchronní aplikace v jazyce C++, najdete v tématu asynchronní programování v jazyce C++.
Přístupová oprávnění k umístění
Například kód v těchto příkladech vyžaduje funkci PicturesLibrary, ale vaše umístění může vyžadovat jinou funkci nebo vůbec žádnou funkci. Další informace najdete v tématu Přístupová oprávnění k souborům.
Získání vlastností nejvyšší úrovně souboru
Řada vlastností souboru nejvyšší úrovně je přístupná jako členové třídy StorageFile . Mezi tyto vlastnosti patří atributy souborů, typ obsahu, datum vytvoření, zobrazovaný název, typ souboru atd.
Poznámka:
Nezapomeňte deklarovat funkci PicturesLibrary.
Tento příklad vytvoří výčet všech souborů v knihovně Obrázky a přistupuje k několika vlastnostem nejvyšší úrovně každého souboru.
// 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);
}
Získání základních vlastností souboru
Mnoho základních vlastností souboru jsou získány prvním voláním StorageFile.GetBasicPropertiesAsync metoda. Tato metoda vrátí BasicProperties objekt, který definuje vlastnosti pro velikost položky (soubor nebo složka) a také při poslední změně položky.
Tento příklad vytvoří výčet všech souborů v knihovně Obrázky a přistupuje k několika základním vlastnostem každého souboru.
// 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);
}
Získání rozšířených vlastností souboru
Kromě vlastností nejvyšší úrovně a základního souboru existuje mnoho vlastností přidružených k obsahu souboru. K těmto rozšířeným vlastnostem se přistupuje voláním metody BasicProperties.RetrievePropertiesAsync . (A BasicProperties objekt je získán pomocí volání StorageFile.Properties vlastnosti.) Zatímco vlastnosti nejvyšší úrovně a základního souboru jsou přístupné jako vlastnosti třídy, konkrétně StorageFile a BasicProperties, rozšířené vlastnosti lze získat předáním kolekce IEnumerable objektů String představujících názvy vlastností, které mají být načteny, metodě BasicProperties.RetrievePropertiesAsync. Tato metoda pak vrátí kolekci IDictionary . Každá rozšířená vlastnost se pak načte z kolekce podle názvu nebo indexu.
Tento příklad vypíše všechny soubory v knihovně Obrázky, určuje názvy požadovaných vlastností (DataAccessed a FileOwner) v objektu List , předá objekt Listobjektu BasicProperties.RetrievePropertiesAsync k načtení těchto vlastností a potom tyto vlastnosti načte podle názvu z vráceného objektu IDictionary .
Úplný seznam rozšířených vlastností souboru najdete v části Vlastnosti jádra systému 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);
}
}
Windows developer