다음을 통해 공유


최근에 사용한 파일 및 폴더 추적

중요 API

사용자가 자주 액세스하는 파일을 앱의 MRU(가장 최근에 사용한 목록)에 추가하여 추적합니다. 플랫폼은 마지막으로 액세스한 시간을 기준으로 항목을 정렬하고 목록의 25개 항목 제한에 도달하면 가장 오래된 항목을 제거하여 MRU를 관리합니다. 모든 앱에는 자체 MRU가 있습니다.

앱의 MRU는 정적 StorageApplicationPermissions.MostRecentlyUsedList 속성에서 가져오는 StorageItemMostRecentlyUsedList 클래스로 표시됩니다. MRU 항목은 IStorageItem 개체로 저장되므로 StorageFile 개체(파일을 나타냄)와 StorageFolder 개체(폴더를 나타냄)를 MRU에 추가할 수 있습니다.

참고 항목

 전체 샘플을 보려면 파일 선택기 샘플파일 액세스 샘플을 참조하세요.

전제 조건

선택한 파일을 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)을 사용합니다. 메타데이터를 설정하면 항목의 목적(예: "프로필 사진")을 기록할 수 있습니다. Add(IStorageItem)을 호출하여 메타데이터 없이 MRU에 파일을 추가할 수도 있습니다. MRU에 항목을 추가하면 메서드는 항목을 검색하는 데 사용되는 토큰이라는 고유 식별 문자열을 반환합니다.

MRU에서 항목을 검색하려면 토큰이 필요하므로 다른 곳에 유지해야 합니다. 앱 데이터에 대한 자세한 내용은 애플리케이션 데이터 관리를 참조하세요.

토큰을 사용하여 MRU에서 항목 검색

검색하려는 항목에 가장 적합한 검색 메서드를 사용합니다.

방금 추가한 파일을 다시 가져오는 방법은 다음과 같습니다.

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가 가득 찬 경우 항목 제거

MRU의 25개 항목 제한에 도달한 후 새 항목을 추가하려고 하면 가장 오래 전에 액세스한 항목이 자동으로 제거됩니다. 따라서 새 항목을 추가하기 전에 항목을 제거할 필요가 없습니다.

향후 액세스 목록

MRU뿐만 아니라 앱에는 향후 액세스 목록도 있습니다. 파일과 폴더를 선택하면 사용자는 다른 방법으로는 액세스할 수 없는 항목에 액세스할 수 있는 앱 권한을 부여하게 됩니다. 이러한 항목을 향후 액세스 목록에 추가하면 앱이 나중에 해당 항목에 다시 액세스하려고 할 때 해당 권한을 보존하게 됩니다. 앱의 향후 액세스 목록은 정적 StorageApplicationPermissions.FutureAccessList 속성에서 가져오는 StorageItemAccessList 클래스로 표시됩니다.

사용자가 항목을 선택하면 해당 항목을 MRU뿐만 아니라 향후 액세스 목록에도 추가하는 것이 좋습니다.

  • FutureAccessList는 최대 1000개의 항목을 보유할 수 있습니다. 기억: 폴더와 파일을 모두 보존할 수 있습니다. 따라서 폴더 수가 많습니다.
  • 플랫폼은 절대로 FutureAccessList에서 항목을 제거하지 않습니다. 1,000개 항목 제한에 도달하면 공간을 확보할 때까지 제거 메서드로 다른 항목을 추가할 수 없습니다.