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.

Jenis file Online Jaringan terukur Offline
File lokal Benar Benar Benar
File OneDrive ditandai sebagai tersedia-offline Benar Benar Benar
File OneDrive ditandai sebagai online-saja Benar Berdasarkan pengaturan pengguna Salah
File jaringan Benar Berdasarkan pengaturan pengguna Salah

 

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 layanan ini mencakup jenis untuk mengelola file, folder, dan pengaturan aplikasi. Ini juga termasuk jenis StorageFile yang diperlukan.
  3. Memperoleh objek StorageFile untuk file yang diinginkan. Jika Anda menghitung pustaka, langkah ini biasanya dicapai dengan memanggil metode StorageFolder.CreateFileQuery lalu memanggil metode GetFilesAsync 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 mengulangi pengumpulan yang dikembalikan yang mereferensikan 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");
    }
}