Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les applications SDK d'applications Windows peuvent exploiter les API WinRT pour lire et écrire des paramètres d'application, des sélecteurs de fichiers et de dossiers, ainsi que des emplacements sécurisés tels que la bibliothèque Vidéo/Musique. En outre, toute application de bureau empaquetée peut utiliser à la fois les API WinRT et Win32 dans le Kit de développement logiciel (SDK) Windows, ainsi que les API fournies dans le Kit de développement logiciel (SDK) .NET. Cet article fournit des conseils sur l’utilisation des API de stockage WinRT pour interroger des fichiers et des dossiers, récupérer des propriétés de fichier et utiliser la bibliothèque Images .
Interroger des fichiers et des dossiers
L’exemple suivant montre comment utiliser les API StorageFolder et StorageFile pour interroger la bibliothèque documents pour les fichiers et dossiers. L’exemple utilise la GetFilesInFolderAsync
méthode pour effectuer une itération récursive dans la structure de dossiers et ajouter les noms de fichiers à un StringBuilder
objet.
using System.Text;
using Windows.Storage;
...
private async Task<string> GetDocumentsContentsAsync()
{
StorageFolder docsFolder = KnownFolders.DocumentsLibrary;
StringBuilder outputBuilder = new();
await GetFilesInFolderAsync(docsFolder, outputBuilder);
return outputBuilder.ToString();
}
private async Task GetFilesInFolderAsync(StorageFolder folder, StringBuilder outputBuilder)
{
IReadOnlyList<IStorageItem> storageItem = await folder.GetItemsAsync();
foreach (var item in storageItem)
{
if (item is StorageFolder)
{
await GetFilesInFolderAsync(item as StorageFolder, outputBuilder);
}
else
{
outputBuilder.AppendLine($"Found {item.Name} in folder {folder.Name}");
}
}
}
Obtenir les propriétés de fichier de base
L’exemple suivant prend la GetFilesInFolderAsync
méthode de l’exemple précédent et ajoute la possibilité de récupérer la taille et la date de modification de fichier pour chaque fichier. L’exemple utilise l’API BasicProperties pour récupérer la taille de fichier et la date modifiées pour chaque fichier, mettre en forme la taille du fichier et ajouter la taille et la date modifiées à l’objet StringBuilder
après chaque nom de fichier et de dossier.
using System.Text;
using Windows.Storage;
using Windows.Storage.FileProperties;
...
private async Task GetFilesInFolderAsync(StorageFolder folder, StringBuilder outputBuilder)
{
IReadOnlyList<IStorageItem> storageItem = await folder.GetItemsAsync();
foreach (var item in storageItem)
{
if (item is StorageFolder)
{
await GetFilesInFolderAsync(item as StorageFolder, outputBuilder);
}
else
{
outputBuilder.AppendLine($"Found {item.Name} in folder {folder.Name}");
// Append each file's size and date modified.
BasicProperties basicProperties = await item.GetBasicPropertiesAsync();
string fileSize = string.Format("{0:n0}", basicProperties.Size);
outputBuilder.AppendLine($" - File size: {fileSize} bytes");
outputBuilder.AppendLine($" - Date modified: {basicProperties.DateModified}");
}
}
}
Utilisation de la bibliothèque d'images
Dans cet exemple, l’application est configurée pour recevoir des notifications lorsque la bibliothèque Images est mise à jour. L’exemple utilise l’API StorageLibrary pour récupérer la bibliothèque d’images et l’événement DefinitionChanged pour recevoir des notifications lorsque la bibliothèque est mise à jour. L’événement DefinitionChanged
est appelé lorsque la liste des dossiers de la bibliothèque active change. L’exemple utilise la propriété de Folders
la bibliothèque pour itérer dans les dossiers de la bibliothèque Images et écrire le nom du dossier dans la console.
using Windows.Storage;
...
private async Task Configure()
{
StorageLibrary picturesFolder = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);
picturesFolder.DefinitionChanged += picturesFolder_DefinitionChanged;
}
private void picturesFolder_DefinitionChanged(StorageLibrary sender, object args)
{
foreach (StorageFolder item in sender.Folders)
{
Console.WriteLine($"Folder {item.Name} found.");
}
}
Voir aussi
Accéder aux fichiers et dossiers avec le SDK d’application Windows et les API .NET
Windows developer