Ce didacticiel montrera comment utiliser les méthodes GetFolder et GetFile du FileSystemObject.
Obtenir les propriétés du dossier et du fichier avec VBA FileSystemObject
La méthode GetFolder renvoie un objet Folder correspondant au dossier dans un chemin spécifié et vous permet d'accéder à ses propriétés. La méthode GetFile fait de même avec le fichier spécifié.
Définir la référence VBA
Tout d'abord, lorsque vous utilisez FileSystemObjects, vous devrez peut-être définir une référence à la bibliothèque d'exécution du script VB : ouvrez Visual Basic Editor (ALT+F11), sélectionnez Outils > Références dans le menu déroulant et cochez la case de « Exécution de script Microsoft ».
FileSystemObject
Deuxièmement, vous devez créer le FileSystemObject :
12 | Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject") |
Vous avez maintenant accès à GetFolder et aux autres méthodes FileSystemObject.
Utilisation de la méthode GetFolder
Après avoir spécifié le dossier auquel vous souhaitez accéder
1 | Définir fld = FSO.GetFolder("C:\Src\") |
tu peux le copier :
1 | fld.Copier "C:\NouveauDossier\" |
déplacez-le :
1 | fld.Déplacer "C:\NouveauDossier\" |
supprime-le:
1 | fld.Supprimer |
ou créez-y un nouveau fichier texte :
1 | fld.CréerFichierTexte "NouveauFichierTexte.txt" |
En utilisant cette méthode, vous avez accès aux propriétés du dossier telles que ses attributs (fld.Attributes), la date et l'heure de sa création (fld.DateCreated), du dernier accès (fld.DateLastAccessed), de la dernière modification (fld.DateLastModified ), la lettre de son lecteur (fld.Drive), son nom et son nom court (fld.Name, fld.ShortName), son chemin et son raccourci (fld.Path, fld.ShortPath), sa taille (fld.Size), son type (fld.Type), son dossier parent (fld.ParentFolder), vérifiez s'il s'agit d'un dossier racine (fld.IsRootFolder) ou vous pouvez parcourir, compter, etc. ses fichiers (fld.Files) ou ses sous-dossiers (fld. sous-dossiers).
Mettre tout cela ensemble dans une procédure ressemblerait à ceci:
123456789101112131415161718192021222324 | Sous-FSOGetFolder()Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject")Définir fld = FSO.GetFolder("C:\Src\")Debug.Print fld.DateCreatedDebug.Print fld.DriveDebug.Print fld.NameDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.ShortPathDebug.Print fld.SizeDebug.Print fld.Files.CountDebug.Print fld.TypePour chaque pli dans fld.SubFoldersDebug.Print fold.NamePli suivantPour chaque fichier dans fld.FilesDebug.Print file.NameFichier suivantFin du sous-marin |
Veuillez noter que vous devez appuyer sur Ctrl+G pour voir le résultat de la commande Debug.Print dans la fenêtre immédiate VBA.
Méthode GetParentFolderName
Alternativement à la manière mentionnée ci-dessus, vous pouvez accéder au nom du dossier parent d'un dossier en utilisant ce code :
1234 | Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject")ParentFold= FSO.GetParentFolderName("C:\ParentTest\Test\") |
ParentFold sera dans ce cas "C:\ParentTest\".
Veuillez noter que cette méthode ne résoudra pas le chemin et ne vérifiera pas l'existence du chemin spécifié.
Méthode GetSpecialFolder
Avec la méthode GetSpecialFolder, en passant 0, 1 ou 2 comme argument, vous pouvez obtenir votre chemin de dossier Windows (avec les fichiers installés par le système d'exploitation Windows), votre chemin de dossier système (avec les bibliothèques, les polices et les pilotes de périphérique) et temporaire chemin du dossier (le dossier utilisé pour stocker les fichiers temporaires), respectivement.
1234567 | Sous-FSOGetSpecialFolder()Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder(0) ‘Le résultat peut être : C:\Windows\System32Fin du sous-marin |
Méthode GetFile
Vous pouvez utiliser la méthode GetFile d'une manière très similaire à la méthode GetFolder. Après avoir spécifié le fichier auquel vous souhaitez accéder
1 | Définir le fichier = FSO.GetFile("C:\Src\Test.xlsx") |
tu peux le copier :
1 | fil.Copier "C:\Dst\" |
déplacez-le :
1 | fil.Déplacer "C:\Dst\" |
supprime-le:
1 | fil.Supprimer |
ou ouvrez-le en tant qu'objet TextStream :
1 | fil.OpenAsTextStream |
Les propriétés du fichier telles que ses attributs, la date et l'heure de sa création, de son dernier accès ou de sa dernière modification, la lettre de son lecteur, son nom et son nom abrégé, son chemin d'accès et son chemin d'accès abrégé, sa taille, son type et son dossier parent sont accessibles de la même manière comme décrit dans la méthode GetFolder.