Son kullanılan dosyaları ve klasörleri izleme

Önemli API'ler

Kullanıcınızın sık eriştiği dosyaları uygulamanızın en son kullanılan listesine (MRU) ekleyerek izleyin. Platform, öğeleri en son ne zaman erişildiğine göre sıralayarak ve listenin 25 öğe sınırına ulaşıldığında en eski öğeyi kaldırarak MRU'ları sizin için yönetir. Tüm uygulamaların kendi MRU'ları vardır.

Uygulamanızın MRU değeri, statik StorageApplicationPermissions.MostRecentlyUsedList özelliğinden aldığınız StorageItemMostRecentlyUsedList sınıfıyla temsil edilir. MRU öğeleri IStorageItem nesneleri olarak depolanır, bu nedenle MRU'ya hem StorageFile nesneleri (dosyaları temsil eden) hem de StorageFolder nesneleri (klasörleri temsil eder) eklenebilir.

Uyarı

 Tam örnekler için bkz. Dosya seçici örneği ve Dosya erişim örneği.

Önkoşullar

MRU'ya seçili dosya ekleme

  • Kullanıcınızın seçtiği dosyalar genellikle tekrar tekrar geri dönülen dosyalardır. Bu nedenle, seçilen dosyaları seçildikleri anda uygulamanızdaki MRU'ya eklemeyi düşünün. Nasıl yapıldığını burada bulabilirsiniz.

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

    StorageItemMostRecentlyUsedList.Add aşırı yüklenmiş. Örnekte, meta verileri dosyayla ilişkilendirebilmemiz için Add(IStorageItem, String) kullanıyoruz. Meta verileri ayarlamak, öğenin amacını (örneğin "profil resmi") kaydetmenizi sağlar. Add (IStorageItem) çağrısı yaparak dosyayı meta veriler olmadan MRU'ya da ekleyebilirsiniz. MRU'ya bir öğe eklediğinizde yöntemi, öğeyi almak için kullanılan belirteç olarak adlandırılan benzersiz bir tanımlayıcı dize döndürür.

Tavsiye

MRU'dan bir öğe almak için belirteci kullanmanız gerekir, bu nedenle bir yerde saklayın. Uygulama verileri hakkında daha fazla bilgi için bkz. Uygulama verilerini yönetme.

MRU'dan bir öğeyi almak için anahtar kullanın

Almak istediğiniz öğe için en uygun alma yöntemini kullanın.

Yeni eklediğimiz dosyayı şu şekilde geri alabilirsiniz.

StorageFile retrievedFile = await mru.GetFileAsync(mruToken);

İşte, önce belirteçleri ve sonra öğeleri almak için tüm girdiler üzerinde nasıl döngü yapacağınız.

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'daki girdileri yinelemenize olanak tanır. Bu girdiler, bir öğenin belirtecini ve meta verilerini içeren AccessListEntry yapılarıdır.

MRU dolduğunda öğeleri MRU'dan kaldırma

MRU'nun 25 öğe sınırına ulaşıldığında ve yeni bir öğe eklemeyi denediğinizde, en uzun süre önce erişilen öğe otomatik olarak kaldırılır. Bu nedenle, yeni bir öğe eklemeden önce hiçbir zaman bir öğeyi kaldırmanız gerekmez.

Gelecekteki erişim listesi

MRU listesine ek olarak, uygulamanızın bir de gelecekteki erişim listesi vardır. Kullanıcınız dosya ve klasörleri seçerek uygulamanıza erişilmeyebilecek öğelere erişme izni verir. Bu öğeleri gelecek erişim listenize eklerseniz, uygulamanız bu öğelere daha sonra yeniden erişmek istediğinde bu izni korursunuz. Uygulamanızın gelecekteki erişim listesi, statik StorageApplicationPermissions.FutureAccessList özelliğinden aldığınız StorageItemAccessList sınıfıyla temsil edilir.

Kullanıcı bir öğeyi seçtiğinde, öğeyi gelecekteki erişim listenize ve MRU'nuza eklemeyi göz önünde bulundurun.

  • FutureAccessList en fazla 1000 öğe barındırabilir. Unutmayın: dosyaların yanı sıra klasörleri de barındırabilir, bu nedenle çok fazla klasör vardır.
  • Platform sizin için FutureAccessList'ten hiçbir zaman öğe kaldırmaz. 1000 öğe sınırına ulaştığınızda, Remove yöntemiyle yer açmadan başka bir öğe ekleyemezsiniz.