Partager via


Détermination de la disponibilité des fichiers Microsoft OneDrive

API importantes

Déterminez si un fichier Microsoft OneDrive est disponible à l’aide de la propriété StorageFile.IsAvailable.

Prérequis

Utilisation de la propriété StorageFile.IsAvailable

Les utilisateurs peuvent marquer les fichiers OneDrive comme étant disponibles hors connexion (par défaut) ou en ligne uniquement. Cette fonctionnalité permet aux utilisateurs de déplacer des fichiers volumineux (tels que des images et des vidéos) vers leur emplacement OneDrive, de les marquer comme étant en ligne uniquement et d’économiser de l’espace disque (le seul élément conservé localement est un fichier de métadonnées).

StorageFile.IsAvailable permet de déterminer si un fichier est actuellement disponible. Le tableau suivant indique la valeur de la propriété StorageFile.IsAvailable dans différents scénarios.

Type de fichier En ligne Connexion réseau limitée Hors connexion
Fichier local True True True
Fichier OneDrive marqué comme étant disponible hors connexion True True True
Fichier OneDrive marqué comme étant en ligne uniquement Vrai Dépend des paramètres utilisateur Faux
Fichier réseau Vrai Dépend des paramètres utilisateur Faux

 

Les étapes suivantes illustrent comment déterminer si un fichier est actuellement disponible.

  1. Déclarez une fonctionnalité appropriée pour la bibliothèque à laquelle vous voulez accéder.
  2. Incluez l’espace de noms Windows.Storage. Cet espace de noms comprend les types qui permettent de gérer les fichiers, les dossiers et les paramètres d’application. Il comprend également le type StorageFile nécessaire.
  3. Obtenez un objet StorageFile pour le ou les fichiers souhaités. Si vous énumérez une bibliothèque, vous devez généralement effectuer cette étape en appelant la méthode StorageFolder.CreateFileQuery, puis la méthode GetFilesAsync de l’objet StorageFileQueryResult résultant. La méthode GetFilesAsync retourne une collection IReadOnlyList d’objets StorageFile.
  4. Une fois que vous avez accès à un objet StorageFile qui représente le ou les fichiers souhaités, la valeur de la propriété StorageFile.IsAvailable indique si le fichier est disponible ou non.

La méthode générique suivante montre comment énumérer un dossier et retourner la collection d’objets StorageFile pour ce dossier. La méthode d’appel itère la collection retournée en référençant la propriété StorageFile.IsAvailable pour chaque fichier.

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