Seçici ile dosya ve klasörleri açma

Important

WinUI 3 uygulaması mı oluşturuyorsunuz? Microsoft.Windows.Storage.Pickers ad alanını, bu makalede açıklanan Windows.Storage.Pickers API'ler yerine kullanın. Windows Uygulama SDK'sı seçiciler (Windows Uygulama SDK'sı 1.8 ve üzeri sürümlerde kullanılabilir) WinUI 3 uygulamaları için tasarlanmıştır; pencere işleme başlatması gerektirmez ve basit yol tabanlı sonuçlar döndürürler. Bkz. WinUI'de seçicilerle dosya ve klasörleri açma ve WinUI'de seçiciyle dosya kaydetme.

Bu sayfadaki Windows.Storage.Pickers API'leri UWP uygulamalarına ve yükseltme gerektiren masaüstü uygulamalarına (Windows Uygulama SDK'sı seçicilerin kullanılamadığı durumlarda) uygulanır.

Önemli API'ler

Kullanıcının bir seçiciyle etkileşim kurmasına izin vererek dosyalara ve klasörlere erişin. Dosyalara erişmek için FileOpenPicker ve FileSavePicker sınıflarını, klasöre erişmek için de FolderPicker'ı kullanabilirsiniz.

Uyarı

 Tam örnek için bkz. Dosya seçici örneği.

Önkoşullar

  • Evrensel Windows Platformu (UWP) uygulamaları için asenkron programlamayı anlamak

    C# veya Visual Basic'te zaman uyumsuz uygulamalar yazmayı öğrenebilirsiniz. C# veya Visual Basic'te zaman uyumsuz API'leri çağırma hakkında bilgi için bölümüne bakın. C++'ta zaman uyumsuz uygulamalar yazmayı öğrenmek için bkz. C++Zaman Uyumsuz programlama.

  • Konum erişim izinleri

    bkz. Dosya erişim izinleri.

Dosya seçici kullanıcı arabirimi

Dosya seçici, kullanıcıları yönlendirmek ve dosyaları açarken veya kaydederken tutarlı bir deneyim sağlamak için bilgileri görüntüler.

Bu bilgiler şunları içerir:

  • Geçerli konum
  • Kullanıcının seçtiği öğe veya öğeler
  • Kullanıcının göz atabileceği konum ağacı. Bu konumlar müzik veya İndirmeler klasörü gibi dosya sistemi konumlarının yanı sıra dosya seçici sözleşmesini (Kamera, Fotoğraflar ve Microsoft OneDrive gibi) uygulayan uygulamaları içerir.

E-posta uygulaması, kullanıcının ekleri seçmesi için bir dosya seçici görüntüleyebilir.

İki dosyanın açılmak üzere seçildiği bir dosya seçici.

Seçiciler nasıl çalışır?

Bir seçici ile uygulamanız kullanıcının sistemindeki dosya ve klasörlere erişebilir, dosyalara göz atabilir ve kaydedebilir. Uygulamanız bu seçmeleri StorageFile ve StorageFolder nesneleri olarak alır ve bu nesneler üzerinde çalışabilirsiniz.

Seçici, kullanıcının dosya sisteminden veya diğer uygulamalardan dosya ve klasör seçmesine izin vermek için tek, birleşik bir arabirim kullanır. Diğer uygulamalardan seçilen dosyalar, dosya sistemindeki dosyalar gibidir: StorageFile nesneleri olarak döndürülürler. Genel olarak, uygulamanız bunlar üzerinde diğer nesnelerle aynı şekilde çalışabilir. Diğer uygulamalar, dosya seçici sözleşmelerine katılarak dosyaları kullanılabilir hale getirir. Uygulamanızın diğer uygulamalara dosya, kaydetme konumu veya dosya güncelleştirmeleri sağlamasını istiyorsanız bkz. Dosya seçici sözleşmeleriyle tümleştirme.

Örneğin, kullanıcınızın bir dosyayı açabilmesi için uygulamanızda dosya seçiciyi çağırabilirsiniz. Bu, uygulamanızı arama uygulaması yapar. Dosya seçici, kullanıcının dosyada gezinmesini ve dosyayı seçmesini sağlamak için sistemle ve/veya diğer uygulamalarla etkileşim kurar. Kullanıcınız bir dosya seçtiğinde, dosya seçici bu dosyayı uygulamanıza döndürür. Kullanıcının OneDrive gibi bir sağlama uygulamasından dosya seçmesi durumundaki işlem aşağıdadır.

bir uygulamanın, arabirim olarak dosya seçiciyi kullanarak başka bir uygulamadan dosya açma işlemini gösteren bir diyagram.

Tek bir dosya seçin: tam kod listesi

var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
    // Application now has read/write access to the picked file
    this.textBlock.Text = "Picked photo: " + file.Name;
}
else
{
    this.textBlock.Text = "Operation cancelled.";
}

Tek bir dosya seçin: adım adım

Dosya seçici kullanmak, bir dosya seçici nesnesi oluşturup özelleştirmeyi ve ardından kullanıcının bir veya daha fazla öğe seçebilmesi için dosya seçiciyi göstermeyi içerir.

  1. FileOpenPicker oluşturma ve özelleştirme

    var picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
    picker.FileTypeFilter.Add(".jpg");
    picker.FileTypeFilter.Add(".jpeg");
    picker.FileTypeFilter.Add(".png");
    

    Kullanıcılarınızla ve uygulamanızla ilgili dosya seçici nesnesinde özellikleri ayarlayın.

    Bu örnek, kullanıcının üç özellik ayarlayarak seçebileceği kullanışlı bir konumda resimlerin zengin, görsel bir görüntüsünü oluşturur: ViewMode, SuggestedStartLocation ve FileTypeFilter.

    • ViewMode'yi PickerViewModeThumbnail enum değeri olarak ayarlamak, dosya seçicideki dosyaları resim küçük resimleri kullanarak zengin ve görsel olarak sergilemeye olanak tanır. Resim veya video gibi görsel dosyaları seçmek için bunu yapın. Aksi takdirde PickerViewMode.List kullanın. Resim veya Video Ekle ve Belge Ekle özelliklerine sahip varsayımsal bir e-posta uygulaması, dosya seçiciyi göstermeden önce özelliğe uygun ViewMode ayarlar.

    • PickerLocationId.PicturesLibrary kullanarak SuggestedStartLocation'ı Resimler olarak ayarlamak, kullanıcıyı resimleri bulma olasılığı olan bir konumda başlatır. SuggestedStartLocation öğesini seçilmekte olan dosya türüne uygun bir konuma (örneğin, Müzik, Resimler, Videolar veya Belgeler) ayarlayın. Kullanıcı, başlangıç konumundan diğer konumlara gidebilir.

    • Dosya türlerini belirtmek için FileTypeFilter kullanmak, kullanıcının ilgili dosyaları seçmeye odaklanmasını sağlar. FileTypeFilter'daki önceki dosya türlerini yeni girdilerle değiştirmek için Ekle yerine ReplaceAll kullanın.

  2. FileOpenPicker Gösterme

    • Tek bir dosya seçmek için

      Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
      if (file != null)
      {
          // Application now has read/write access to the picked file
          this.textBlock.Text = "Picked photo: " + file.Name;
      }
      else
      {
          this.textBlock.Text = "Operation cancelled.";
      }
      
    • Birden çok dosya seçmek için

      var files = await picker.PickMultipleFilesAsync();
      if (files.Count > 0)
      {
          StringBuilder output = new StringBuilder("Picked files:\n");
      
          // Application now has read/write access to the picked file(s)
          foreach (Windows.Storage.StorageFile file in files)
          {
              output.Append(file.Name + "\n");
          }
          this.textBlock.Text = output.ToString();
      }
      else
      {
          this.textBlock.Text = "Operation cancelled.";
      }
      

Bir klasör seçin: tam kod listesi

var folderPicker = new Windows.Storage.Pickers.FolderPicker();
folderPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
folderPicker.FileTypeFilter.Add("*");

Windows.Storage.StorageFolder folder = await folderPicker.PickSingleFolderAsync();
if (folder != null)
{
    // Application now has read/write access to all contents in the picked folder
    // (including other sub-folder contents)
    Windows.Storage.AccessCache.StorageApplicationPermissions.
    FutureAccessList.AddOrReplace("PickedFolderToken", folder);
    this.textBlock.Text = "Picked folder: " + folder.Name;
}
else
{
    this.textBlock.Text = "Operation cancelled.";
}

Tavsiye

Uygulamanız bir seçici aracılığıyla bir dosyaya veya klasöre her eriştiğinde, onu takip etmek için uygulamanızın FutureAccessList veya MostRecentlyUsedList listesine ekleyin. Bu listeleri kullanma hakkında daha fazla bilgi için bkz. Son kullanılan dosya ve klasörleri izleme.

Ayrıca bakınız

Windows.Storage.Pickers

dosyalar, klasörler ve kitaplıklar

Dosya seçici sözleşmeleriyle tümleştirme