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 WinUI-Apps
Informationen zum Schreiben asynchroner Apps in C# finden Sie unter Aufrufen asynchroner APIs in C# oder Visual Basic. Informationen zum Schreiben asynchroner Apps in C++ finden Sie unter Asynchrone Programmierung in C++-.
App-Funktionsdeklarationen
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. Sie enthält auch den erforderlichen StorageFile-Typ .
- Rufen Sie ein StorageFile-Objekt für die gewünschten Dateien ab. Wenn Sie eine Bibliothek aufzählen, erfolgt dieser Schritt in der Regel durch Aufrufen der StorageFolder.CreateFileQuery-Methode und anschließendem Aufrufen der getFilesAsync-Methode des resultierenden StorageFileQueryResult-Objekts. 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, die auf die StorageFile.IsAvailable-Eigenschaft für jede Datei verweist.
/// <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");
}
}
Windows developer