LISTER TOUS LES FICHIERS D'UN REPERTOIRE ET SOUS REPERTOIRE

lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008 - 4 janv. 2004 à 11:31
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 - 14 déc. 2009 à 16:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19249-lister-tous-les-fichiers-d-un-repertoire-et-sous-repertoire

malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 1
14 déc. 2009 à 16:26
Est-ce qu'il serait possible d'avoir le même code (de départ) mais en VB6 s'il vous plaît.

Cordialement

Malo
cs_UNi Messages postés 35 Date d'inscription vendredi 15 février 2002 Statut Membre Dernière intervention 27 avril 2009
19 oct. 2006 à 09:13
Sympa cette source meme si il y a une autre methode sans passer par les FSO ;o)
Belsteak Messages postés 6 Date d'inscription dimanche 4 juillet 2004 Statut Membre Dernière intervention 18 novembre 2004
5 juil. 2004 à 00:35
j'ai trouvé une autre possibilité...

dim arrlist as filesysteminfo() ' matrice de fichiers
dim i as integer
...

Dim dirpathInfo As New DirectoryInfo(path) 'remplacez path par votre
'chemin
arrFile = dirpathInfo.GetFileSystemInfos()
' on récupère l'ensemble des fichiers du répertoire dans la matrice

For i = 0 To arrFile.GetLength(0) - 1
'on parcourre la matrice. Dans mon cas seuls les fichiers du répertoire m'intéressent sinon il faut travailler sur plusieurs dimensions. Chaque dimension représentant un sous répertoire avec ses fichiers

lstFiles.Items.Add(arrFile(i).Name)
'ici vous placez votre code de récup. dans mon cas, je remplis une listbox avec le nom de chaque fichiers
Next

et voilà, c'est dans la boite... !
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 févr. 2004 à 18:04
listefichier("C:/")

try
Dim LogStream As New StreamWriter(Fichier & ".log", True, System.Text.Encoding.UTF8)
for each s as string in listefichier

LogStream.WriteLine(s )
next

catch
'erreur, impossible d'ecrire dans le fichier

finally

LogStream.Close()
end try

Voila je sais que CanisLupus a ecrit aussi qqchose mais je sais pas si ca marche :p
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 févr. 2004 à 18:04
listefichier("C:/")

try
Dim LogStream As New StreamWriter(Fichier & ".log", True, System.Text.Encoding.UTF8)
for each s as string in listefichier

LogStream.WriteLine(s )
next

catch
'erreur, impossible d'ecrire dans le fichier

finally

LogStream.Close()
end try

Voila je sais que CanisLupus a ecrit aussi qqchose mais je sais pas si ca marche :p
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
20 févr. 2004 à 17:24
Sinon, il y a un truc simple que Gandalfkhorne à publié :
http://www.vbfrance.com/code.aspx?ID=20539

Pour mettre les résultats dans un fichier texte c simple :

Avant la boucle où il y a Add ou additem, on ouvre un fichier texte :

open Fichier.txt for output as #1

et à la place du add ou additem, tu mets

print #1, fichier.Name ou print #1 fc.name (suivant l'exemple choisi)

et tu termines par un close #1
cuba1393 Messages postés 6 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 4 février 2005
20 févr. 2004 à 16:51
bonjour

Searit il trop demande pour un débutant comme moi de mettre le résultat, c'est à dire tout les fichiers avec leur chemin dans un fichier texte.

Merci d'avance
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
15 janv. 2004 à 18:35
Ma source est une source .net et je pense comme lumesh, qu'il vaut mieux regarder dans la framework c'est souvent plus simple, Je connais pas les FSO car je suis en .net et je voulais trouver une methode pour faire ca et je me suis servis de vb sans rien d'autres

Pour ce qui est de la sub qui se transforme en function je vais rectifier ca :P
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
15 janv. 2004 à 09:18
Sans doute lumesh mais tu dois parler de .NET car en vb6, c moins évident.
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
14 janv. 2004 à 22:34
CanisLupus, pourquoi utiliser le FSO (threadé biensur sinon ca freeze l'applie) alors que le framework te donne tout ?!
Perso je remplace un max d'API de de functions style FSO (ou dans le meem genre) via le framework !!

C'est un conseil perso, mais matez d'abord le framework, il y a des choses plus qu'interressante dedans !
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
14 janv. 2004 à 21:32
Heu... je ne voudrais pas dénigrer mais ton code est un peu bancal.
Commencer par un private sub et finir par end function, déjà c bizarre. C pas du VB ça.
Tu as mal dû recopier ton code, sinon, indique moi dans quel langage c écrit.

Maintenant, si tu veux plus simple cherche du côté FileSystemObject.
Un chtit exemple pour lister les dossiers :

Tu copies ça dans une form où tu as mis un ctrl listbox(list1) et tu exécutes.

Cela dit, c qu'une piste et c pas garanti que ce soit rapide.

Private Sub Form_Load()
Dim fso, f, fc
Dim racine

racine = "c:"

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(racine)

For Each fc In f.SubFolders

List1.AddItem fc.Name

Next

Set fso = Nothing

End Sub


Cordialement
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
5 janv. 2004 à 06:05
certe ;)
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
4 janv. 2004 à 11:42
Merci beaucoup en effet c'est quand meme beaucoup plus simple lol
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
4 janv. 2004 à 11:31
tu as aussi:

Dim Liste() as String
Dim Chemin as String = "C:"
Dim Pattern as String = "*.*"
Liste = System.IO.Directory.GetFileSystemEntries(Chemin, Pattern)
Rejoignez-nous