Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Основные API
- StorageFile.GetBasicPropertiesAsync
- StorageFile.Properties
- StorageItemContentProperties.RetrievePropertiesAsync
Получение свойств — верхнего уровня, базового и расширенного — для файла, представленного объектом StorageFile.
Замечание
Полный пример см. в примере доступа к файлам.
Необходимые условия
Общие сведения о асинхронном программировании для приложений WinUI
Вы можете узнать, как писать асинхронные приложения в C#, см. статью "Вызов асинхронных API" в C# или Visual Basic. Чтобы узнать, как писать асинхронные приложения в C++, см. раздел Асинхронное программирование в C++.
Разрешения доступа к местоположению
Например, для кода в этих примерах требуется возможность picturesLibrary, но ваша ситуация может потребовать другую возможность или не потребовать её вообще. Дополнительные сведения см. в разделе "Разрешения на доступ к файлам".
Получение свойств верхнего уровня файла
Многие свойства файла верхнего уровня доступны как члены класса StorageFile . К этим свойствам относятся атрибуты файлов, тип контента, дата создания, отображаемое имя, тип файла и т. д.
Замечание
Не забудьте указать возможность picturesLibrary (доступ к библиотеке изображений).
В этом примере перечисляются все файлы в библиотеке изображений, доступ к нескольким свойствам верхнего уровня каждого файла.
// 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);
}
Получение основных свойств файла
Многие основные свойства файлов получаются при первом вызове метода StorageFile.GetBasicPropertiesAsync . Этот метод возвращает объект BasicProperties , который определяет свойства для размера элемента (файла или папки), а также при последнем изменении элемента.
В этом примере перечисляются все файлы в библиотеке изображений, доступ к нескольким основным свойствам каждого файла.
// 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);
}
Получение расширенных свойств файла
Помимо свойств верхнего уровня и базовых файлов, существует множество свойств, связанных с содержимым файла. К этим расширенным свойствам обращается метод BasicProperties.RetrievePropertiesAsync . (Объект BasicProperties получается путем вызова свойства StorageFile.Properties.) Хотя свойства верхнего уровня и базовые свойства файлов доступны как свойства класса — StorageFile и BasicProperties, соответственно— расширенные свойства получаются путем передачи коллекции объектов StringiEnumerable, представляющих имена свойств, которые необходимо извлечь в метод BasicProperties.RetrievePropertiesAsync. Затем этот метод возвращает коллекцию IDictionary . Затем каждое расширенное свойство извлекается из коллекции по имени или по индексу.
В этом примере перечисляются все файлы в библиотеке рисунков, указываются имена требуемых свойств (DataAccessed и FileOwner) в объекте List , передается объект List в BasicProperties.RetrievePropertiesAsync для получения этих свойств, а затем извлекает эти свойства по имени из возвращаемого объекта IDictionary .
Полный список расширенных свойств файла см. в свойствах Windows Core .
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