Bagikan melalui


Membuka file dan folder dengan pemilih

API penting

Akses file dan folder dengan memungkinkan pengguna berinteraksi dengan pemilih. Anda dapat menggunakan kelas FileOpenPicker dan FileSavePicker untuk mengakses file, dan FolderPicker untuk mengakses folder.

Catatan

 Untuk sampel lengkap, lihat Sampel pemilih file.

Catatan

Dalam aplikasi desktop (yang mencakup aplikasi WinUI 3), Anda dapat menggunakan pemilih file dan folder dari Windows.Storage.Pickers. Namun, jika aplikasi desktop memerlukan elevasi untuk dijalankan, Anda memerlukan pendekatan yang berbeda karena API ini tidak dirancang untuk digunakan dalam aplikasi yang ditinggikan. Misalnya, lihat FileSavePicker.

Prasyarat

UI pemilih file

Pemilih file menampilkan informasi untuk mengorientasi pengguna dan memberikan pengalaman yang konsisten saat membuka atau menyimpan file.

Informasi tersebut meliputi:

  • Lokasi saat ini
  • Item atau item yang dipilih pengguna
  • Pohon lokasi yang dapat dijelajahi pengguna. Lokasi ini mencakup lokasi sistem file—seperti folder Musik atau Unduhan—serta aplikasi yang mengimplementasikan kontrak pemilih file (seperti Kamera, Foto, dan Microsoft OneDrive).

Aplikasi email mungkin menampilkan pemilih file bagi pengguna untuk memilih lampiran.

a file picker with two files picked to be opened.

Cara kerja pemilih

Dengan pemilih, aplikasi Anda dapat mengakses, menelusuri, dan menyimpan file dan folder di sistem pengguna. Aplikasi Anda menerima pilihan tersebut sebagai objek StorageFile dan StorageFolder, yang kemudian dapat Anda operasikan.

Pemilih menggunakan satu antarmuka terpadu untuk memungkinkan pengguna memilih file dan folder dari sistem file atau dari aplikasi lain. File yang dipilih dari aplikasi lain seperti file dari sistem file: file dikembalikan sebagai objek StorageFile. Secara umum, aplikasi Anda dapat beroperasi dengan cara yang sama seperti objek lain. Aplikasi lain membuat file tersedia dengan berpartisipasi dalam kontrak pemilih file. Jika Anda ingin aplikasi Anda menyediakan file, lokasi penyimpanan, atau pembaruan file ke aplikasi lain, lihat Mengintegrasikan dengan kontrak pemilih file.

Misalnya, Anda dapat memanggil pemilih file di aplikasi sehingga pengguna dapat membuka file. Ini menjadikan aplikasi Anda sebagai aplikasi panggilan. Pemilih file berinteraksi dengan sistem dan/atau aplikasi lain untuk memungkinkan pengguna menavigasi dan memilih file. Saat pengguna Anda memilih file, pemilih file mengembalikan file tersebut ke aplikasi Anda. Berikut adalah proses untuk kasus pengguna memilih file dari aplikasi yang menyediakan, seperti OneDrive.

a diagram that shows the process of one app getting a file to open from another app using the file picker as an interface bewteen the two apps.

Pilih satu file: daftar kode lengkap

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.";
}

Pilih satu file: langkah demi langkah

Menggunakan pemilih file melibatkan pembuatan dan penyesuaian objek pemilih file, lalu memperlihatkan pemilih file sehingga pengguna dapat memilih satu atau beberapa item.

  1. Membuat dan menyesuaikan FileOpenPicker

    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");
    

    Atur properti pada objek pemilih file yang relevan dengan pengguna dan aplikasi Anda.

    Contoh ini membuat tampilan gambar yang kaya dan visual di lokasi yang nyaman yang dapat dipilih pengguna dengan mengatur tiga properti: ViewMode, SuggestedStartLocation, dan FileTypeFilter.

    • Mengatur ViewMode ke nilai enum PickerViewModeThumbnail membuat tampilan visual yang kaya dengan menggunakan gambar mini gambar untuk mewakili file dalam pemilih file. Lakukan ini untuk memilih file visual seperti gambar atau video. Jika tidak, gunakan PickerViewMode.List. Aplikasi email hipotetis dengan fitur Lampirkan Gambar atau Video dan Lampirkan Dokumen akan mengatur ViewMode yang sesuai dengan fitur sebelum menampilkan pemilih file.

    • Mengatur SuggestedStartLocation ke Gambar menggunakan PickerLocationId.PicturesLibrary memulai pengguna di lokasi di mana mereka cenderung menemukan gambar. Atur SuggestedStartLocation ke lokasi yang sesuai untuk jenis file yang dipilih, misalnya Musik, Gambar, Video, atau Dokumen. Dari lokasi awal, pengguna dapat menavigasi ke lokasi lain.

    • Menggunakan FileTypeFilter untuk menentukan jenis file membuat pengguna tetap fokus pada memilih file yang relevan. Untuk mengganti tipe file sebelumnya di FileTypeFilter dengan entri baru, gunakan ReplaceAll alih-alih Tambahkan.

  2. Perlihatkan FileOpenPicker

    • Untuk memilih satu file

      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.";
      }
      
    • Untuk memilih beberapa file

      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.";
      }
      

Pilih folder: daftar kode lengkap

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.";
}

Tip

Setiap kali aplikasi Anda mengakses file atau folder melalui pemilih, tambahkan ke FutureAccessList atau MostRecentlyUsedList aplikasi Anda untuk melacaknya. Anda dapat mempelajari selengkapnya tentang menggunakan daftar ini di Cara melacak file dan folder yang baru digunakan.

Baca juga

Windows.Storage.Pickers

File, folder, dan pustaka

Mengintegrasikan dengan kontrak pemilih file