다음을 통해 공유


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

주요 API들

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

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

필수 조건

  • UWP(유니버설 Windows 플랫폼) 앱에 대한 비동기 프로그래밍을 이해하기

    C# 또는 Visual Basic에서 비동기 앱을 작성하는 방법을 알아볼 수 있습니다. C# 또는 Visual Basic비동기 API 호출을 참조하세요. 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) 를 사용합니다. 메타데이터를 설정하면 항목의 용도(예: "프로필 그림")를 기록할 수 있습니다. 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는 최대 1,000개의 항목을 보유할 수 있습니다. 기억하세요: 폴더와 파일을 저장할 수 있으므로, 많은 폴더를 보관할 수 있습니다.
  • 플랫폼은 사용자를 위해 FutureAccessList에서 항목을 제거하지 않습니다. 1000개 항목 제한에 도달하면 Remove 메서드를 사용하여 공간을 확보할 때까지 다른 항목을 추가할 수 없습니다.