Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Основные API
Отслеживайте файлы, к которым пользователь обращается часто, добавляя их в последний используемый список приложений (MRU). Платформа управляет MRU для вас путем сортировки элементов на основе последнего доступа и путем удаления самого старого элемента при достижении ограничения на 25 элементов списка. У всех приложений есть собственный MRU.
MRU приложения представлен классом StorageItemMostRecentlyUsedList, который вы получаете из статического свойства StorageApplicationPermissions.MostRecentlyUsedList. Элементы MRU хранятся как объекты IStorageItem, поэтому в MRU можно добавить как объекты StorageFile (представляющие файлы), так и объекты StorageFolder (представляющие папки).
Замечание
Для полных примеров см. пример для средства выбора файлов и пример для доступа к файлам.
Предпосылки
Общие сведения о асинхронном программировании для приложений универсальной платформы Windows (UWP)
Вы можете узнать, как писать асинхронные приложения в C# или Visual Basic, см. в статье Вызов асинхронных API в C# или Visual Basic. Чтобы узнать, как писать асинхронные приложения в C++, см. раздел Асинхронное программирование в C++.
Разрешения доступа к местоположению
Открытие файлов и папок с помощью средства выбора
Выбранные файлы часто — это те же файлы, к которым пользователи возвращаются снова и снова.
Добавление выбранного файла в MRU
Выбранные пользователем файлы часто являются файлами, которые они возвращают повторно. Поэтому рекомендуется добавлять выбранные файлы в MRU приложения, как только они будут выбраны. Вот как.
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync(); var mru = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList; string mruToken = mru.Add(file, "profile pic");
StorageItemMostRecentlyUsedList.Add перегружен. В примере мы используем Add(IStorageItem, String), чтобы можно было связать метаданные с файлом. Настройка метаданных позволяет записать назначение элемента, например "фото профиля". Вы также можете добавить файл в MRU без метаданных, вызвав Add(IStorageItem). При добавлении элемента в MRU метод возвращает уникально определяющую строку, которая называется маркером, который используется для извлечения элемента.
Подсказка
Для получения элемента из MRU потребуется токен, поэтому сохраните его в постоянном хранилище. Дополнительные сведения о данных приложения см. в разделе "Управление данными приложения".
Используйте маркер для извлечения элемента из MRU
Используйте метод извлечения наиболее подходящий для элемента, который требуется извлечь.
- Извлечение файла в виде StorageFile с помощью GetFileAsync.
- Получение папки в виде StorageFolder, используя GetFolderAsync.
- Получите универсальный IStorageItem, который может представлять либо файл, либо папку, с помощью GetItemAsync.
Вот как вернуть файл, который мы только что добавили.
StorageFile retrievedFile = await mru.GetFileAsync(mruToken);
Вот как выполнить итерацию всех записей, чтобы получить маркеры, а затем элементы.
foreach (Windows.Storage.AccessCache.AccessListEntry entry in mru.Entries)
{
string mruToken = entry.Token;
string mruMetadata = entry.Metadata;
Windows.Storage.IStorageItem item = await mru.GetItemAsync(mruToken);
// The type of item will tell you whether it's a file or a folder.
}
AccessListEntryView позволяет выполнять итерацию записей в MRU. Эти записи представляют собой структуры AccessListEntry , содержащие маркер и метаданные для элемента.
Удаление элементов из списка MRU, когда он переполнен
Когда достигается ограничение в 25 элементов для MRU и вы пытаетесь добавить новый элемент, автоматически удаляется элемент, к которому обращались дольше всех. Таким образом, вам никогда не нужно удалять элемент перед добавлением нового элемента.
Список будущего доступа
Помимо MRU, ваше приложение также имеет список будущего доступа. Выбрав файлы и папки, пользователь предоставляет приложению разрешение на доступ к элементам, которые могут быть недоступны в противном случае. Если вы добавите эти элементы в список будущих доступа, вы сохраните это разрешение, когда приложение хочет получить доступ к этим элементам позже. Список будущих доступов приложения представлен классом StorageItemAccessList, который вы получаете из статического свойства StorageApplicationPermissions.FutureAccessList.
Когда пользователь выбирает элемент, рассмотрите возможность добавления его в список для будущего доступа, а также в список MRU.
- FutureAccessList может содержать до 1000 элементов. Помните: он может хранить папки, а также файлы, поэтому это много папок.
- Платформа никогда не удаляет элементы из FutureAccessList за вас. Когда вы достигнете лимита в 1000 элементов, вы не сможете добавить новый, пока не освободите место с помощью метода Remove.