Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
API Penting
Tentukan apakah file Microsoft OneDrive tersedia menggunakan properti StorageFile.IsAvailable .
Prasyarat
Memahami pemrograman asinkron untuk aplikasi WinUI
Anda dapat mempelajari cara menulis aplikasi asinkron di C#, lihat Memanggil API asinkron di C# atau Visual Basic. Untuk mempelajari cara menulis aplikasi asinkron di C++, lihat Pemrograman asinkron di C++.
Deklarasi kemampuan aplikasi
Lihat izin akses berkas.
Menggunakan properti StorageFile.IsAvailable
Pengguna dapat menandai file OneDrive sebagai tersedia-offline (default) atau online-saja. Kemampuan ini memungkinkan pengguna memindahkan file besar (seperti gambar dan video) ke OneDrive mereka, menandainya sebagai hanya online, dan menyimpan ruang disk (satu-satunya hal yang disimpan secara lokal adalah file metadata).
StorageFile.IsAvailable, digunakan untuk menentukan apakah file saat ini tersedia. Tabel berikut ini memperlihatkan nilai properti StorageFile.IsAvailable dalam berbagai skenario.
| Tipe file | Online | Jaringan terukur | Luar Jaringan |
|---|---|---|---|
| File lokal | Benar | Benar | Benar |
| File OneDrive ditandai sebagai tersedia secara offline | Benar | Benar | Benar |
| File OneDrive ditandai sebagai hanya daring | Benar | Berdasarkan pengaturan pengguna | False |
| File jaringan | Benar | Berdasarkan pengaturan pengguna | False |
Langkah-langkah berikut mengilustrasikan cara menentukan apakah file saat ini tersedia.
- Nyatakan kemampuan yang sesuai untuk pustaka yang ingin Anda akses.
- Sertakan namespace Windows.Storage. Namespace ini mencakup tipe untuk mengelola file, folder, dan pengaturan aplikasi. Jenis StorageFile yang diperlukan juga termasuk di dalamnya.
- Memperoleh objek StorageFile untuk file yang diinginkan. Jika Anda sedang memperhitungkan perpustakaan, langkah ini biasanya dicapai dengan memanggil metode StorageFolder.CreateFileQuery dan kemudian memanggil metode GetFilesAsync dari objek StorageFileQueryResult yang dihasilkan. Metode GetFilesAsync mengembalikan kumpulan IReadOnlyList objek StorageFile.
- Setelah Anda memiliki akses ke objek StorageFile yang mewakili file yang diinginkan, nilai properti StorageFile.IsAvailable mencerminkan apakah file tersedia atau tidak.
Metode generik berikut mengilustrasikan cara menghitung folder apa pun dan mengembalikan kumpulan objek StorageFile untuk folder tersebut. Metode pemanggilan kemudian melakukan iterasi atas koleksi yang dikembalikan dengan mengacu pada properti StorageFile.IsAvailable untuk setiap file.
/// <summary>
/// Generic function that retrieves all files from the specified folder.
/// </summary>
/// <param name="folder">The folder to be searched.</param>
/// <returns>An IReadOnlyList collection containing the file objects.</returns>
async Task<System.Collections.Generic.IReadOnlyList<StorageFile>> GetLibraryFilesAsync(StorageFolder folder)
{
var query = folder.CreateFileQuery();
return await query.GetFilesAsync();
}
private async void CheckAvailabilityOfFilesInPicturesLibrary()
{
// Determine availability of all files within Pictures library.
var files = await GetLibraryFilesAsync(KnownFolders.PicturesLibrary);
for (int i = 0; i < files.Count; i++)
{
StorageFile file = files[i];
StringBuilder fileInfo = new StringBuilder();
fileInfo.AppendFormat("{0} (on {1}) is {2}",
file.Name,
file.Provider.DisplayName,
file.IsAvailable ? "available" : "not available");
}
}
Windows developer