LINQ et répertoires de fichiers (Visual Basic)
De nombreuses opérations du système de fichiers sont des requêtes et l’approche de LINQ leur convient donc bien.
Notez que les requêtes de cette section sont non destructives. Elles ne sont pas utilisées pour modifier le contenu des fichiers ou des dossiers d’origine. La règle suivie est que les requêtes ne doivent pas provoquer des effets secondaires. En règle générale, tout code (y compris les requêtes qui utilisent des opérateurs de création / mise à jour / suppression) qui modifie les données sources doit rester distinct du code qui interroge simplement les données.
Cette section contient les rubriques suivantes :
Comment faire : Rechercher des fichiers avec un attribut ou un nom spécifié (Visual Basic))
Montre comment rechercher des fichiers en examinant une ou plusieurs propriétés de son objet FileInfo.
Comment faire : Grouper des fichiers par extension (LINQ) (Visual Basic)
Montre comment retourner des groupes d’objets FileInfo en fonction de leur extension de nom de fichier.
Comment faire : Demander le nombre total d'octets dans un ensemble de dossiers (LINQ) (Visual Basic)
Montre comment retourner le nombre total d’octets dans tous les fichiers d’une arborescence de répertoires spécifiée.
Comment faire : Comparer le contenu de deux dossiers (LINQ) (Visual Basic)s
Montre comment retourner tous les fichiers qui sont présents dans deux dossiers spécifiés, ainsi que tous les fichiers qui sont présents dans un dossier mais pas dans l’autre.
Comment : interroger les fichiers les plus volumineux dans une arborescence de répertoires (LINQ) (Visual Basic)
Montre comment retourner le fichier le plus grand ou le plus petit, ou un nombre spécifié de fichiers, dans une arborescence de répertoires.
Comment faire : Rechercher des fichiers en double dans une arborescence (LINQ) (Visual Basic)
Montre comment regrouper tous les noms de fichier qui se trouvent dans plusieurs emplacements d’une arborescence de répertoires spécifiée. Montre aussi comment effectuer des comparaisons plus complexes avec un comparateur personnalisé.
Comment interroger le contenu des fichiers d'un dossier (LINQ) (Visual Basic)
Montre comment itérer au sein des dossiers d’une arborescence, ouvrir chaque fichier et interroger le contenu du fichier.
Commentaires
La création d’une source de données représentant avec précision le contenu du système de fichiers et la gestion correcte des exceptions induisent une certaine complexité. Les exemples de cette section créent une collection d’instantanés d’objets FileInfo qui représente tous les fichiers d’un dossier racine spécifié et de tous ses sous-dossiers. L’état réel de chaque FileInfo peut changer dans le temps entre le début et la fin de l’exécution d’une requête. Par exemple, vous pouvez créer une liste d’objets FileInfo à utiliser comme source de données. Si vous essayez d’accéder à la propriété Length
dans une requête, l’objet FileInfo tente d’accéder au système de fichiers pour mettre à jour la valeur de Length
. Si le fichier n’existe plus, vous obtenez une exception FileNotFoundException dans votre requête, même si vous n’interrogez pas directement le système de fichiers. Certaines requêtes de cette section utilisent une méthode distincte qui consomme ces exceptions particulières dans certains cas. Une autre option consiste à conserver votre source de données à jour dynamiquement en utilisant FileSystemWatcher.