최근에 사용한 파일 및 폴더 추적Track recently used files and folders

중요 APIImportant APIs

사용자가 자주 액세스하는 파일을 앱의 MRU(최근에 사용한 목록)에 추가하여 추적할 수 있습니다.Track files that your user accesses frequently by adding them to your app's most recently used list (MRU). 플랫폼은 마지막으로 액세스한 시간을 기반으로 항목을 정렬하고 목록의 25개 항목 제한에 도달한 경우 가장 오래된 항목을 제거하여 MRU를 자동으로 관리합니다.The platform manages the MRU for you by sorting items based on when they were last accessed, and by removing the oldest item when the list's 25-item limit is reached. 모든 앱에는 자체 MRU가 있습니다.All apps have their own MRU.

앱의 MRU는 정적 StorageApplicationPermissions.MostRecentlyUsedList 속성에서 가져오는 StorageItemMostRecentlyUsedList 클래스로 표현됩니다.Your app's MRU is represented by the StorageItemMostRecentlyUsedList class, which you obtain from the static StorageApplicationPermissions.MostRecentlyUsedList property. MRU 항목은 IStorageItem 개체로 저장되므로 파일을 나타내는 StorageFile 개체와 폴더를 나타내는 StorageFolder 개체를 모두 MRU에 추가할 수 있습니다.MRU items are stored as IStorageItem objects, so both StorageFile objects (which represent files) and StorageFolder objects (which represent folders) can be added to the MRU.

참고

 전체 샘플을 보려면 파일 선택기 샘플파일 액세스 샘플을 참조하세요. For complete samples, see the File picker sample and the File access sample.

필수 구성 요소Prerequisites

MRU에 선택한 파일 추가Add a picked file to the MRU

  • 사용자가 선택하는 파일은 해당 사용자가 반복적으로 돌아가는 파일인 경우가 많습니다.The files that your user picks are often files that they return to repeatedly. 따라서 사용자가 파일을 선택하는 즉시 해당 파일을 앱의 MRU에 추가하는 것이 좋습니다.So consider adding picked files to your app's MRU as soon as they are picked. 다음과 같이 하세요.Here's how.

    Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
    
    var mru = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList;
    string mruToken = mru.Add(file, "profile pic");
    

    StorageItemMostRecentlyUsedList.Add가 오버로드됩니다.StorageItemMostRecentlyUsedList.Add is overloaded. 이 예제에서는 메타데이터를 파일과 연결할 수 있도록 Add(IStorageItem, String) 를 사용합니다.In the example, we use Add(IStorageItem, String) so that we can associate metadata with the file. 메타데이터를 설정하면 항목의 용도(예: "프로필 사진")를 기록할 수 있습니다.Setting metadata lets you record the item's purpose, for example "profile pic". Add(IStorageItem) 을 호출하면 메타데이터 없이 파일을 MRU에 추가할 수 있습니다.You can also add the file to the MRU without metadata by calling Add(IStorageItem). 항목을 MRU에 추가한 경우 메서드는 항목을 검색하는 데 사용되는 고유하게 식별되는 문자열(토큰)을 반환합니다.When you add an item to the MRU, the method returns a uniquely identifying string, called a token, which is used to retrieve the item.

MRU에서 항목을 검색하려면 토큰이 필요하므로 다른 곳에 유지해야 합니다.You'll need the token to retrieve an item from the MRU, so persist it somewhere. 앱 데이터에 대한 자세한 내용은 응용 프로그램 데이터 관리를 참조하세요.For more info about app data, see Managing application data.

토큰을 사용하여 MRU에서 항목 검색Use a token to retrieve an item from the MRU

검색하려는 항목에 가장 적합한 검색 방법을 사용합니다.Use the retrieval method most appropriate for the item you want to retrieve.

방금 추가한 파일로 돌아가는 방법은 다음과 같습니다.Here's how to get back the file we just added.

StorageFile retrievedFile = await mru.GetFileAsync(mruToken);

모든 항목을 반복하여 토큰과 항목을 차례로 가져오는 방법은 다음과 같습니다.Here's how to iterate all the entries to get tokens and then items.

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에서 항목을 반복할 수 있습니다.The AccessListEntryView lets you iterate entries in the MRU. 이러한 항목은 항목에 대한 토큰과 메타데이터가 포함된 AccessListEntry 구조입니다.These entries are AccessListEntry structures that contain the token and metadata for an item.

가득 찬 경우 MRU에서 항목 제거Removing items from the MRU when it's full

MRU의 25개 항목 제한에 도달한 후 새 항목을 추가하려고 하면 가장 오래 전에 액세스한 항목이 자동으로 제거됩니다.When the MRU's 25-item limit is reached and you try to add a new item, the item that was accessed the longest time ago is automatically removed. 따라서 새 항목을 추가하기 전에 항목을 제거할 필요가 없습니다.So, you never need to remove an item before you add a new one.

향후 액세스 목록Future-access list

MRU뿐만 아니라 앱에는 향후 액세스 목록도 있습니다.As well as an MRU, your app also has a future-access list. 파일 및 폴더를 선택하여 사용자는 액세스하지 못할 수 있는 항목에 대한 액세스 권한을 앱에 부여할 수 있습니다.By picking files and folders, your user grants your app permission to access items that might not be accessible otherwise. 이러한 항목을 향후 액세스 목록에 추가하면 나중에서 앱이 이러한 항목에 다시 액세스하려는 경우 해당 권한이 유지됩니다.If you add these items to your future-access list then you'll retain that permission when your app wants to access those items again later. 앱의 향후 액세스 목록은 정적 StorageApplicationPermissions.FutureAccessList 속성에서 가져오는 StorageItemAccessList 클래스로 표현됩니다.Your app's future-access list is represented by the StorageItemAccessList class, which you obtain from the static StorageApplicationPermissions.FutureAccessList property.

사용자가 항목을 선택하면 MRU뿐만 아니라 향후 액세스 목록에도 추가하는 것이 좋습니다.When a user picks an item, consider adding it to your future-access list as well as your MRU.

  • FutureAccessList에는 최대 1000개의 항목을 저장할 수 있습니다.The FutureAccessList can hold up to 1000 items. 파일뿐만 아니라 폴더도 유지할 수 있으므로 많은 폴더가 있을 수 있습니다.Remember: it can hold folders as well as files, so that's a lot of folders.
  • 플랫폼은 FutureAccessList에서 항목을 자동으로 제거하지 않습니다.The platform never removes items from the FutureAccessList for you. 1000개 항목 제한에 도달한 경우 Remove 메서드로 공간을 확보할 때까지 다른 항목을 추가할 수 없습니다.When you reach the 1000-item limit, you can't add another until you make room with the Remove method.