Menentukan ketersediaan file Microsoft OneDrive

API Penting

Tentukan apakah file Microsoft OneDrive tersedia menggunakan properti StorageFile.IsAvailable .

Prasyarat

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.

  1. Nyatakan kemampuan yang sesuai untuk pustaka yang ingin Anda akses.
  2. Sertakan namespace Windows.Storage. Namespace ini mencakup tipe untuk mengelola file, folder, dan pengaturan aplikasi. Jenis StorageFile yang diperlukan juga termasuk di dalamnya.
  3. 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.
  4. 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");
    }
}