Bonjour,
Voici le premier d'une série d'articles sur des listes de fichiers d'un répertoire (ou dossier, english: directory, folder) sous Windows.
Commençons par deux programmes qui écrivent le résultat directement dans la
console.
List.cpp
Ce code montre comment on peut "parcourir" les fichiers d'un répertoire à l'aide des fonctions
FindFirstFile(?) et
FindNextFile(?).
L'affichage utilise des couleurs différentes pour distinguer les répertoires des fichiers.
De plus, le répertoire initial peut être sélectionné interactivement avec
SHBrowseForFolder(?)
(d'où la nécessité de
#include <shlobj.h>).
Avec comme répertoire initial
TestDir (voir zip), on obtient:
C:\TestDir\
C:\TestDir\Images\
C:\TestDir\Images\DSC_5344.jpg
C:\TestDir\Joli Texte.txt
C:\TestDir\Textes\
C:\TestDir\Textes\Autres Textes\
C:\TestDir\Textes\Autres Textes\En ?tÚ.txt
C:\TestDir\Textes\Texte A.txt
C:\TestDir\Textes\Texte B.txt
C:\TestDir\Textes\Texte C.txt
C:\TestDir\Textes\Vieux Textes\
C:\TestDir\Textes\Vieux Textes\Texte vieux.txt
C:\TestDir\Vide\
La copie (sans les couleurs) du contenu de la console dans le presse-papier peut se faire de la manière suivante:
Bouton droite sur l'entête de la console, Modifier, Sélectionner tout, Enter.
Pour adapter les couleurs utilisés, reportez-vous à
SetConsoleTextAttribute function sous
character attributes.
Constatons déjà quelques "défauts":
- Les répertoires et fichiers sont désignée par le nom complet.
- les répertoires et fichiers sont "mélangés".
- les caractères accentués sont mal interprétés.
- tous les sous-répertoires et fichiers sont affichés.
- manque d'autres informations utiles.
- etc ...
ListTab.cpp
Pour séparer les fichiers des sous-répertoires, parcourons chaque répertoire deux fois en traitant d'abord les fichiers et ensuite les sous-répertoires.
Puis, introduisons les tabulations pour éviter d'écrire systématiquement les noms complets.
Finalement, pour les fichiers, indiquons aussi la taille (en octets):
-------- C:\TestDir\ --------
Joli Texte.txt 10 Bytes
Images\
DSC_5344.jpg 143538 Bytes
Textes\
Texte A.txt 198 Bytes
Texte B.txt 198 Bytes
Texte C.txt 198 Bytes
Autres Textes\
En ?tÚ.txt 176 Bytes
Vieux Textes\
Texte vieux.txt 286 Bytes
Vide\
Bien entendu, ces deux codes sont loin d'être "utilisables" dans l'état actuel.
N'hésitez pas de faire des suggestions ou critiques pour que je puisse en tenir compte dans les prochains articles.
Bonne lecture
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.