Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
viktiga API:er
Spåra filer som användaren kommer åt ofta genom att lägga till dem i appens senast använda lista (MRU). Plattformen hanterar MRU åt dig genom att sortera objekt baserat på när de senast användes, och genom att ta bort det äldsta objektet när listans gräns på 25 objekt nås. Alla appar har sin egen MRU.
Appens MRU representeras av klassen StorageItemMostRecentlyUsedList , som du hämtar från den statiska egenskapen StorageApplicationPermissions.MostRecentlyUsedList . MRU-objekt lagras som IStorageItem-objekt , så både StorageFile-objekt (som representerar filer) och StorageFolder-objekt (som representerar mappar) kan läggas till i MRU.
Förutsättningar
Förstå asynkron programmering för UWP-appar (Universal Windows Platform)
Du kan lära dig hur du skriver asynkrona appar i C# eller Visual Basic, se Anropa asynkrona API:er i C# eller Visual Basic. Mer information om hur du skriver asynkrona appar i C++finns i Asynkron programmering i C++.
Åtkomstbehörigheter till platsen
Öppna filer och mappar med en filväljare
Plockade filer är ofta samma filer som användarna återgår till om och om igen.
Lägga till en vald fil i MRU
De filer som användaren väljer är ofta filer som de återkommer till upprepade gånger. Överväg därför att lägga till plockade filer i appens MRU så snart de har valts. Så här gör du.
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync(); var mru = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList; string mruToken = mru.Add(file, "profile pic");
StorageItemMostRecentlyUsedList.Add är överbelastad. I exemplet använder vi Add(IStorageItem, String) så att vi kan associera metadata med filen. Om du anger metadata kan du registrera objektets syfte, till exempel "profilbild". Du kan också lägga till filen i MRU utan metadata genom att anropa Add(IStorageItem). När du lägger till ett objekt i MRU returnerar metoden en unikt identifierande sträng, kallad en token, som används för att hämta objektet.
Tips/Råd
Du behöver token för att hämta ett objekt från MRU, så spara den någonstans. Mer information om appdata finns i Hantera programdata.
Använda en token för att hämta ett objekt från MRU
Använd den hämtningsmetod som passar bäst för det objekt som du vill hämta.
- Hämta en fil som en StorageFile- genom att använda GetFileAsync.
- Hämta en mapp som en StorageFolder genom att använda GetFolderAsync.
- Hämta en allmän IStorageItem, som kan representera antingen en fil eller mapp, med hjälp av GetItemAsync.
Så här hämtar du tillbaka filen som vi nyss lade till.
StorageFile retrievedFile = await mru.GetFileAsync(mruToken);
Så här itererar du alla element för att hämta token och sedan objekt.
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.
}
Med hjälp av AccessListEntryView kan du iterera elementen i MRU. Dessa poster är AccessListEntry strukturer som innehåller token och metadata för ett objekt.
Ta bort objekt från MRU när den är full
När mru-gränsen på 25 objekt har nåtts och du försöker lägga till ett nytt objekt tas det objekt som användes längst tid sedan bort automatiskt. Därför behöver du aldrig ta bort ett objekt innan du lägger till ett nytt.
Lista över framtida åtkomst
Förutom en MRU har din app också en lista över framtida åtkomst. Genom att välja filer och mappar ger användaren din app behörighet att komma åt objekt som kanske inte är tillgängliga annars. Om du lägger till dessa objekt i listan med framtida åtkomst behåller du den behörigheten när din app vill komma åt dessa objekt igen senare. Appens lista över framtida åtkomst representeras av klassen StorageItemAccessList , som du hämtar från den statiska egenskapen StorageApplicationPermissions.FutureAccessList .
När en användare väljer ett objekt kan du överväga att lägga till det i listan över framtida åtkomst samt din MRU.
- FutureAccessList kan innehålla upp till 1 000 objekt. Kom ihåg att den kan innehålla både mappar och filer, så det är många mappar.
- Plattformen tar aldrig bort objekt från FutureAccessList åt dig. När du når gränsen på 1 000 objekt kan du inte lägga till en till förrän du skapar plats med metoden Ta bort .