Sdílet prostřednictvím


Určení dostupnosti souborů Microsoft OneDrivu

důležitá rozhraní API

Pomocí vlastnosti StorageFile.Is Available zjistěte, jestli je k dispozici soubor Microsoft OneDrive.

Požadavky

Použití vlastnosti StorageFile.IsAvailable

Uživatelé můžou soubory OneDrivu označit jako dostupné offline (výchozí) nebo jenom online. Tato funkce umožňuje uživatelům přesouvat velké soubory (například obrázky a videa) na OneDrive, označit je jako jenom online a ušetřit místo na disku (jediná věc, která se uchovává místně, je soubor metadat).

StorageFile.IsAvailable, slouží k určení, zda je soubor aktuálně k dispozici. Následující tabulka ukazuje hodnotu vlastnosti StorageFile.IsAvailable v různých scénářích.

Typ souboru Online Měřená síť Režim offline
Místní soubor Pravdivé Pravdivé Pravdivé
Soubor OneDrivu označený jako dostupný–offline Pravdivé Pravdivé Pravdivé
Soubor v OneDrive označený jako pouze online Pravdivé Na základě uživatelských nastavení Nepravda
Síťový soubor Pravdivé Na základě uživatelských nastavení Nepravda

 

Následující kroky ukazují, jak určit, jestli je soubor aktuálně dostupný.

  1. Deklarujte schopnost odpovídající knihovně, ke které chcete získat přístup.
  2. Zahrňte obor názvů Windows.Storage. Tento obor názvů zahrnuje typy pro správu souborů, složek a nastavení aplikace. Zahrnuje také potřebný typ StorageFile.
  3. Získejte objekt StorageFile pro požadovaný/potřebný soubor/soubory. Pokud vytváříte výčet knihovny, tento krok se obvykle provádí voláním metody StorageFolder.CreateFileQuery a voláním výsledné StorageFileQueryResult objektu GetFilesAsync metody. Metoda GetFilesAsync vrátí kolekci IReadOnlyList objektů StorageFile.
  4. Jakmile budete mít přístup k objektu StorageFile představující požadované soubory, hodnota vlastnosti StorageFile.IsAvailable odráží, zda je soubor k dispozici.

Následující obecná metoda ukazuje, jak vytvořit výčet libovolné složky a vrátit kolekci StorageFile objekty pro tuto složku. Volající metoda pak iteruje přes vrácenou kolekci odkazující na StorageFile.IsAvailable vlastnost pro každý soubor.

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