Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz 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
- Właściwości pliku magazynowego
- StorageItemContentProperties.RetrievePropertiesAsync
Pobieranie właściwości — najwyższego poziomu, podstawowego i rozszerzonego — dla pliku reprezentowanego przez obiekt StorageFile .
Wymagania wstępne
Omówienie programowania asynchronicznego dla aplikacji platformy uniwersalnej systemu Windows (UWP)
Aby dowiedzieć się, jak pisać aplikacje asynchroniczne w języku C# lub Visual Basic, 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 uprawnienia picturesLibrary, ale Twoje ustawienia lokalne mogą wymagać innego uprawnienia lub wcale nie wymagać żadnego. 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ć możliwość 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
W tym przykładzie wylicza się wszystkie pliki w bibliotece Obrazów, określane są nazwy żądanych właściwości (DataAccessed i FileOwner) w obiekcie List, przekazuje obiekt List do BasicProperties.RetrievePropertiesAsync w celu pobrania tych właściwości, a następnie pobiera te właściwości według nazwy z 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);
}
}