VBS - Obtenir la liste des fichiers et générer un CSV
Besoin d'une liste de fichiers au format CSV ? Utilisez ce VBScript pour scanner un dossier, sous-dossiers inclus, et sortir les détails des fichiers comme la taille, la date et le propriétaire pour une analyse facile.
Traduction automatique
Cet article a plus d'un an, mais il a été relu le 30 juillet 2026 — son contenu est toujours exact.
Cet article fait partie de la série VBA et automatisation de MS Office :
- MS Office - Comment créer un ruban dans Excel
- MS Excel - Comment appeler un web service SOAP
- Comment optimiser une base de données MS Access existante
- VBS - Récupérer la liste des champs d'une base de données MS Access
- VBS - Script d'auto-mise à jour
- Microsoft Outlook - VBA - Enregistrer des emails en PDF
- VBS - Obtenir la liste des fichiers et générer un CSV
- MS Office - Charger une liste déroulante depuis une plage Excel
- Exporter les objets MS Access
- MS Excel - Obtenir la liste des références utilisées dans vos modules

Cet article partage un VBScript (files2csv.vbs) qui parcourt récursivement un dossier Windows et exporte les détails des fichiers — chemin, nom, dates de création/d'accès/de modification, taille, type et propriétaire — vers un fichier CSV, prêt à être analysé dans Excel ou avec Python/Pandas.
Il y a six ans, j'avais besoin d'un script DOS capable de récupérer la liste de tous les fichiers d'un dossier sur une machine Windows et de générer un fichier .csv avec cette liste.
Une fois le fichier .csv généré, je pouvais le traiter dans MS Excel, par exemple, et le trier/filtrer ou, pourquoi pas, dans Python avec la librairie Pandas.
Voici ce que produit ce script : un fichier CSV listant tous les fichiers d'un dossier, avec les dates, la taille, le type et le propriétaire.
"FilePathAndName";"ParentFolder";"Name";"DateCreated";"DateLastAccessed";"DateLastModified";"Size";"Type";"Suffix";"Owner";
"C:\temp\test\test.csv";"C:\temp\test";"test.csv";"21-01-24 09:07:44";"21-01-24 09:09:08";"21-01-24 09:09:08";"472";"CSV Microsoft Excel File";"csv";"Christophe";
"C:\temp\test\test.vbs";"C:\temp\test";"test.vbs";"21-01-24 08:43:49";"21-01-24 09:09:03";"21-01-24 09:09:03";"3246";"VBScript File";"vbs";"Christophe";
Voici le script qui le génère. Copiez/collez la source ci-dessous et enregistrez-la dans un fichier, disons c:\files2csv.vbs. Ouvrez une console DOS, lancez cd c:\ puis cscript files2csv.vbs. Quand le travail est terminé, vous obtenez le listing dans files2csv.csv.
'------------------------------------------------------------'' Get the list of files of the current folder + sub-folders and' generate a .csv file with file information like path, size,' extensions, author, ... making then easy to work with that list' in Excel'' Based on a script of' @author Peter Pinchao Liu (https://github.com/lpcclown)' then modified by Christophe Avonture'' @Link : https://github.com/lpcclown/fileScan''------------------------------------------------------------
Option Explicit
Dim objFSO, objCSVFile
' ------------------------------------' Loop all file under one folder' ------------------------------------Function FilesTree(sPath)
Dim objFolder, objSubFolders, objSubFolder, objFiles, objFileDim objShellDim strFileName
Set objFolder = objFSO.GetFolder(sPath) Set objSubFolders = objFolder.SubFolders Set objFiles = objFolder.Files
For Each objFile In objFiles objCSVFile.Write chr(34) & objFile.Path & chr(34) & ";" objCSVFile.Write chr(34) & objFile.ParentFolder & chr(34) & ";" objCSVFile.Write chr(34) & objFile.Name & chr(34) & ";" objCSVFile.Write chr(34) & objFile.DateCreated & chr(34) & ";" objCSVFile.Write chr(34) & objFile.DateLastAccessed & chr(34) & ";" objCSVFile.Write chr(34) & objFile.DateLastModified & chr(34) & ";" objCSVFile.Write chr(34) & objFile.Size & chr(34) & ";" objCSVFile.Write chr(34) & objFile.Type & chr(34) & ";" objCSVFile.Write chr(34) & objFSO.getextensionname(objFile.Path) & chr(34) & ";"
' Get file owner Set objShell = CreateObject ("Shell.Application") Set objFolder = objShell.Namespace (sPath)
For Each strFileName in objFolder.Items if objFolder.GetDetailsOf (strFileName, 0) = objFile.Name Then objCSVFile.Write chr(34) & objFolder.GetDetailsOf (strFileName, 10) & chr(34) & ";" End If Next
objCSVFile.Writeline
Next
For Each objSubFolder In objSubFolders FilesTree(objSubFolder.Path) ' Recursion Next
Set objFiles = Nothing Set objSubFolders = Nothing Set objFolder = Nothing
End Function
Dim sResultFileName, sFolderNameDim wshShell
Const ForWriting = 2
' Create new CSV file : same name of this script but with ' .csv extension sResultFileName = wScript.ScriptFullName sResultFileName = replace(sResultFileName, ".vbs", ".csv")
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objCSVFile = objFSO.CreateTextFile(sResultFileName, ForWriting, True)
' Write comma delimited list of columns in new CSV file. objCSVFile.Write chr(34) & "FilePathAndName" & chr(34) & ";" & _ chr(34) & "ParentFolder" & chr(34) & ";" & _ chr(34) & "Name" & chr(34) & ";" & _ chr(34) & "DateCreated" & chr(34) & ";" & _ chr(34) & "DateLastAccessed" & chr(34) & ";" & _ chr(34) & "DateLastModified" & chr(34) & ";" & _ chr(34) & "Size" & chr(34) & ";" & _ chr(34) & "Type" & chr(34) & ";" & _ chr(34) & "Suffix" & chr(34) & ";" & _ chr(34) & "Owner" & chr(34) & ";"
objCSVFile.Writeline
Set wshShell = CreateObject("WScript.Shell") sFolderName = wshShell.CurrentDirectory Set wshShell = Nothing
wScript.echo "Scan the " & sFolderName & ", please wait..." wScript.echo ""
FilesTree(sFolderName)
wScript.echo "Done, file " & sResultFileName & " has been created"Ce script VBScript parcourt tous les fichiers du dossier courant et de ses sous-dossiers, puis exporte les informations de chaque fichier (chemin, taille, date de modification, propriétaire, etc.) dans un fichier CSV portant le même nom que le script. Le résultat peut ensuite être ouvert dans Excel pour analyser facilement la structure des fichiers.
Vous aviez besoin d'un séparateur tabulation ?
Si oui, faites simplement un rechercher/remplacer pour changer ";" en vbTab partout.
Cet article fait partie de la série VBA et automatisation de MS Office :
- MS Office - Comment créer un ruban dans Excel
- MS Excel - Comment appeler un web service SOAP
- Comment optimiser une base de données MS Access existante
- VBS - Récupérer la liste des champs d'une base de données MS Access
- VBS - Script d'auto-mise à jour
- Microsoft Outlook - VBA - Enregistrer des emails en PDF
- VBS - Obtenir la liste des fichiers et générer un CSV
- MS Office - Charger une liste déroulante depuis une plage Excel
- Exporter les objets MS Access
- MS Excel - Obtenir la liste des références utilisées dans vos modules





