Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtige APIs
Ermitteln Sie, ob eine Microsoft OneDrive-Datei mit der StorageFile.IsAvailable-Eigenschaft verfügbar ist.
Voraussetzungen
Grundlegendes zur asynchronen Programmierung für UWP-Apps (Universelle Windows-Plattform)
Sie können lernen, wie man asynchrone Apps in C# oder Visual Basic schreibt, siehe Aufrufen asynchroner APIs in C# oder Visual Basic. Informationen zum Schreiben asynchroner Apps in C++ finden Sie unter Asynchrone Programmierung in C++-.
Deklarationen von App-Funktionen
Siehe Dateizugriffsberechtigungen.
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.
- Deklarieren Sie eine für die Bibliothek geeignete Funktion, auf die Sie zugreifen möchten.
- 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.
- 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.
- 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");
}
}