> Tech > Méthodes de l’objet FileDB

Méthodes de l’objet FileDB

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Le tableau 1 présente la liste des méthodes de l’objet FileDB. Voici comment chacune des méthodes fonctionne :
La méthode Include.
La méthode Include, que montre le listing 2, utilise l’objet FileSystemObject pour obtenir une collection de fichiers à ajouter à l’objet Recordset. La syntaxe de

Méthodes de l’objet FileDB

la méthode Include est spécifique. Pour ajouter tous les fichiers présents dans un dossier, le paramètre Path doit se terminer par une barre oblique inverse (\).

Faute de ce caractère, la méthode Include suppose que vous voulez ajouter un fichier spécifique. Pour inclure des fichiers dans des sous-dossiers du dossier spécifié, le paramètre Recurse doit être true (vrai). Le renvoi A du listing 2 montre comment la méthode Include ajoute au recordset des informations concernant un fichier. La méthode procède ainsi : 1. Elle appelle la méthode AddNew de l’objet Recordset. Cela crée un enregistrement temporaire qui n’a pas encore été sauvegardé dans le recordset. 2. Elle définit la valeur de chaque champ. Dans ce cas, le champ Path obtiendra la valeur de la propriété Parent Folder, le champ Name obtiendra la valeur de la propriété Name, et ainsi de suite. 3. Elle utilise la méthode Update du Recordset pour sauvegarder l’enregistrement dans le recordset.

La méthode Exclude.
Cette méthode, qui utilise la propriété Filter de l’objet Recordset pour sélectionner dans le recordset les enregistrements qui correspondent au dossier ou au nom de fichier spécifié dans le paramètre Path (voir Web Listing 1 à http://www.itpro.fr ). Le paramètre Path de la méthode Exclude doit se terminer par une barre oblique inverse si vous voulez pouvoir supprimer tous les fichiers d’un dossier particulier.

Sinon, la méthode Exclude supposera que vous voulez supprimer un fichier précis. Contrairement à la méthode Include, la méthode Exclude n’utilise pas l’objet FileSystemObject. Cet objet ne vous permet pas d’utiliser des jokers (ou quelque chose de similaire) pour filtrer une collection de fichiers par type de fichier ou nom de fichier. Heureusement, la propriété Filter de l’objet Recordset offre les possibilités de filtrage nécessaires.

Dans la méthode Exclude, la propriété Filter est définie par une chaîne du genre Path like ‘foldername%’ où foldername est le nom du dossier. Si le paramètre Recurse est true (vrai), le caractère % est inclus. Sinon, il est exclu (je reviendrai bientôt sur ce caractère %). Quand le paramètre Path ne se termine pas par une barre oblique inverse, la méthode Exclude suppose que vous recherchez un fichier spécifique : elle extrait le nom du dossier parent du fichier, obtient la collection Files pour ce dossier et fait une itération dans la collection.

La méthode Exclude sélectionne dans le recordset, l’enregistrement qui correspond exactement au nom spécifié dans le paramètre Path. Elle supprime ensuite le fichier associé à cet enregistrement. Quand le paramètre Path se termine par une barre oblique inverse, la méthode Exclude supprime la barre oblique inverse à droite du paramètre Path et travaille avec toute la collection Files. Quand le caractère % n’est pas présent dans la chaîne de la propriété Filter (c’est-à-dire que Recurse est false), la méthode Exclude recherche les dossiers dont les noms commencent par le nom de dossier spécifié dans le paramètre Path. Quand le caractère % est présent (c’est-à-dire que Recurse est true), la méthode Exclude recherche les dossiers et leurs sous-dossiers dont les noms correspondent au nom de dossier spécifié dans le paramètre Path. La méthode supprime ensuite tous les fichiers que la recherche a trouvés. La méthode Exclude se termine en définissant la propriété Filter par une chaîne vide. Cela supprime le filtre et prépare la méthode pour la recherche suivante.

La méthode WriteCSV.
La méthode WriteCSV écrit un recordset dans un fichier CSV. Le premier paramètre de la méthode est le nom du fichier CSV à sauvegarder ; le second est une valeur booléene (vrai/faux) qui indique à la méthode si elle a le droit de remplacer le fichier s’il existe déjà. Le code source de l’objet FileDB contient deux fonctions, WriteFields et WriteRecords, lesquelles utilisent un objet TextStream pour écrire les champs et les données de l’objet Recordset dans un fichier CSV.

La première ligne du fichier CSV contiendra les noms de champs. La figure 2 montre à quoi ressemble le fichier CSV d’après le recordset de la figure 1. En développant FileDB, j’ai découvert que l’objet Recordset ne tient pas compte des enregistrements en double ; par conséquent, il est possible d’ajouter plus d’une fois un fichier à un recordset. D’où l’obligation d’éliminer par filtrage les enregistrements en double, parce que le fichier CSV ne doit contenir qu’une ligne pour chaque fichier. Pour éliminer les doubles par filtrage, la méthode WriteCSV sauvegarde d’abord les données de l’objet Recordset dans un fichier CSV temporaire, en utilisant les fonctions WriteFields et WriteRecords, puis elle ferme l’objet Recordset. Ensuite, elle crée un objet Connection et configure une chaîne de connexion qui définit le répertoire du fichier temporaire comme une source de données.

La méthode WriteCSV ouvre le fichier CSV temporaire comme un recordset et utilise la requête Select Distinct pour éliminer par filtrage les enregistrements en double. Après cela, la méthode WriteCSV utilise les fonctions WriteFields et WriteRecords pour écrire la copie finale du fichier CSV. Pour finir, la méthode supprime le fichier CSV temporaire. Vous devez d’abord créer un fichier CSV temporaire parce qu’il n’est pas possible d’appliquer la requête Select Distinct à un recordset déconnecté. (Vous ne pouvez pas exécuter d’instructions SQL telles que la requête Select Distinct, sans une source de données.)

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010