Freigeben über


Ermitteln der Verfügbarkeit von Microsoft OneDrive-Dateien

Wichtige APIs

Ermitteln Sie, ob eine Microsoft OneDrive-Datei mit der StorageFile.IsAvailable-Eigenschaft verfügbar ist.

Voraussetzungen

Verwenden der StorageFile.IsAvailable-Eigenschaft

Benutzer können OneDrive-Dateien entweder als offline verfügbar (Standard) oder nur online markieren. Mit dieser Funktion können Benutzer große Dateien (z. B. Bilder und Videos) auf ihr OneDrive verschieben, sie als nur online markieren und Speicherplatz sparen (das einzige lokal gespeicherte Element ist eine Metadatendatei).

StorageFile.IsAvailable wird verwendet, um zu ermitteln, ob eine Datei zurzeit verfügbar ist. Die folgende Tabelle zeigt den Wert der StorageFile.IsAvailable-Eigenschaft in verschiedenen Szenarien.

Dateityp Online Getaktetes Netzwerk Offline
Lokale Datei Richtig Richtig Richtig
OneDrive-Datei, die als offline verfügbar gekennzeichnet ist Richtig Richtig Richtig
OneDrive-Datei, die als "nur online" gekennzeichnet ist Richtig Basierend auf Benutzereinstellungen Falsch
Netzwerkdatei Richtig Basierend auf Benutzereinstellungen Falsch

 

Die folgenden Schritte veranschaulichen, wie Sie ermitteln können, ob eine Datei zurzeit verfügbar ist.

  1. Deklarieren Sie eine für die Bibliothek geeignete Funktion, auf die Sie zugreifen möchten.
  2. Schließen Sie den Windows.Storage Namespace ein. Dieser Namespace enthält die Typen zum Verwalten von Dateien, Ordnern und Anwendungseinstellungen. Es enthält auch den erforderlichen Typ StorageFile.
  3. Rufen Sie ein StorageFile--Objekt für die gewünschten Dateien ab. Wenn Sie eine Bibliothek aufzählen, wird dieser Schritt in der Regel durchgeführt, indem Sie die Methode StorageFolder.CreateFileQuery aufrufen und anschließend die Methode GetFilesAsync des resultierenden StorageFileQueryResult-Objekts aufrufen. Die GetFilesAsync--Methode gibt eine IReadOnlyList- Auflistung von StorageFile--Objekten zurück.
  4. Sobald Sie über den Zugriff auf ein StorageFile-Objekt verfügen, das die gewünschten Dateien darstellt, gibt der Wert der StorageFile.IsAvailable-Eigenschaft an, ob die Datei verfügbar ist.

Die folgende generische Methode veranschaulicht, wie Sie einen beliebigen Ordner aufzählen und die Sammlung von StorageFile-Objekten für diesen Ordner zurückgeben. Die aufrufende Methode durchläuft dann die zurückgegebene Auflistung und nimmt dabei für jede Datei Bezug auf die StorageFile.IsAvailable-Eigenschaft.

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