Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
ważne interfejsy API
- StorageFile.GetBasicPropertiesAsync
- StorageFile.Properties
- StorageItemContentProperties.RetrievePropertiesAsync
Pobierz właściwości — najwyższego poziomu, podstawowego i rozszerzonego — dla pliku reprezentowanego przez obiekt StorageFile.
Uwaga / Notatka
Pełny przykład można znaleźć w przykładzie Dostęp do plików.
Wymagania wstępne
Omówienie programowania asynchronicznego dla aplikacji WinUI
Aby dowiedzieć się, jak pisać aplikacje asynchroniczne w języku C#, zobacz Wywoływanie asynchronicznych interfejsów API w języku C# lub Visual Basic. Aby dowiedzieć się, jak pisać aplikacje asynchroniczne w języku C++, zobacz Programowanie asynchroniczne w języku C++.
uprawnienia dostępu do lokalizacji
Na przykład kod w tych przykładach wymaga możliwości picturesLibrary, ale lokalizacja może wymagać innej możliwości lub braku możliwości. Aby dowiedzieć się więcej, zobacz Uprawnienia dostępu do plików.
Pobieranie właściwości najwyższego poziomu pliku
Wiele właściwości pliku najwyższego poziomu jest dostępnych jako elementy członkowskie klasy StorageFile . Te właściwości obejmują atrybuty plików, typ zawartości, datę utworzenia, nazwę wyświetlaną, typ pliku itd.
Uwaga / Notatka
Pamiętaj, aby zadeklarować uprawnienia picturesLibrary.
W tym przykładzie wyliczane są wszystkie pliki w bibliotece Obrazów, które uzyskują dostęp do kilku właściwości najwyższego poziomu każdego pliku.
// 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);
}
Pobieranie podstawowych właściwości pliku
Wiele podstawowych właściwości pliku uzyskuje się najpierw przez wywołanie metody StorageFile.GetBasicPropertiesAsync . Ta metoda zwraca obiekt BasicProperties , który definiuje właściwości rozmiaru elementu (pliku lub folderu), a także czas ostatniej modyfikacji elementu.
W tym przykładzie wyliczane są wszystkie pliki w bibliotece Obrazów, które uzyskują dostęp do kilku podstawowych właściwości każdego pliku.
// 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);
}
Pobieranie właściwości rozszerzonych pliku
Oprócz właściwości najwyższego poziomu i podstawowego pliku istnieje wiele właściwości skojarzonych z zawartością pliku. Te właściwości rozszerzone są dostępne przez wywołanie metody BasicProperties.RetrievePropertiesAsync . (Obiekt BasicProperties jest uzyskiwany przez wywołanie właściwości StorageFile.Properties ). Chociaż właściwości pliku najwyższego i podstawowego są dostępne jako właściwości klasy — StorageFile i BasicProperties — właściwości rozszerzone są uzyskiwane przez przekazanie kolekcji IEnumerable obiektów String reprezentujących nazwy właściwości, które mają zostać pobrane do metody BasicProperties.RetrievePropertiesAsync. Następnie ta metoda zwraca kolekcję IDictionary . Każda właściwość rozszerzona jest następnie pobierana z kolekcji według nazwy lub indeksu.
W tym przykładzie wyliczane są wszystkie pliki w bibliotece Obrazów, następnie nazwy żądanych właściwości (DataAccessed i FileOwner) są określane w obiekcie List. Obiekt List jest potem przekazywany do metody BasicProperties.RetrievePropertiesAsync w celu pobrania wymienionych właściwości, a następnie właściwości te są pobierane według nazwy ze zwróconego obiektu IDictionary.
Aby uzyskać pełną listę właściwości rozszerzonych pliku, zobacz Właściwości podstawowe systemu 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);
}
}