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
Memahami pemrograman asinkron untuk aplikasi Platform Windows Universal (UWP)
Anda dapat mempelajari cara menulis aplikasi asinkron di C# atau Visual Basic, lihat Memanggil API asinkron di C# atau Visual Basic. Untuk mempelajari cara menulis aplikasi asinkron di C++, lihat Pemrograman asinkron di C++.
Izin akses ke lokasi
Lihat Izin akses file.
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.
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.
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.
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.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk