LISTER LES FICHIERS ET DOSSIERS AVEC OPTION RECURSIVITÉ

dvdstory Messages postés 192 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 10 août 2009 - 22 nov. 2005 à 18:49
arapahoo Messages postés 26 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 11 juillet 2008 - 28 mars 2011 à 22:57
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/34751-lister-les-fichiers-et-dossiers-avec-option-recursivite

arapahoo Messages postés 26 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 11 juillet 2008
28 mars 2011 à 22:57
bien sympa, ça m'as fait un bon support pour faire un export
dans une base, en adaptant à mes besoins.
Merci
ps @TOMALES1 j'aurais été intéressé par une suite
cs_tomalex1 Messages postés 29 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 22 septembre 2011
20 mars 2011 à 00:47
bonsoir,
pas mal mais j'ai rajouter a la fin des code :
Public Sub listeRepertoire(ByVal dir As String)

...

Application.DoEvents()
End Sub

Public Sub listeFichier(ByVal dir As String)

...

Application.DoEvents()
End Sub

cela évite de ne pas mettre l'application en "Ne répond pas" comme ca on peut toujours cliqué sur les checkbox de recherche de fichier et dossier pour arrêté la recherche
surtout quand on a un disque dur de 2 To donc la moitié est utiliser ^^ avec des millions ou des milliards de fichiers

Ps: j'ai noté 9/10 dommage que la parti sauvegarde n'est pas faite mais j'ai déjà commencer a la faire pour moi si quelqu'un la veux je vous l'envoie.
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
17 juin 2007 à 16:17
Est-ce que ton code est asynchrone en tout cas moi je refais tout mon programme.
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
1 juil. 2006 à 00:15
Ah je me rend compte que ce type de source est déjà créer, je te met 8/10 je vais voir ce que je peux améliorer voici mon prog.

http://www.vbfrance.com/code.aspx?ID=37122
imed2nsi Messages postés 4 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 9 mars 2006
15 déc. 2005 à 00:35
c'est vraiment parfait.
g pas encore trouver des problemes!
AlKaponn Messages postés 3 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 29 novembre 2005
29 nov. 2005 à 14:57
oh la la !
Tu sais bien que ce n'est pas une manière propre de programmer avec les labels/goto/resume next.
Aujourd'hui on utilise les try/catch/finally (avec le .NET framework 1.1 et sup.).
Pour traiter ce problème, je place un filtre pour que la fonction ne soit appelée que lorsque le répertoire n'est pas un répertoire système mais ça ne marche pas terrible (sans doute parce que le répertoire a d'autres attributs en plus d'être un dossier système. Je dois peut-être ignorer un attribut en particulier.).
fenhryl Messages postés 4 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 29 novembre 2005
29 nov. 2005 à 13:59
J'avoue ne pas avoir essaye en tant que simple utilisateur, cependant, certains dossiers, comme les "system Volum Information" me posait effctivement des problemes.
je l'ai resolu en indiquant: On Error Resume Next devant mes boucles recursives, si une erreur se presente, le programme ne provoque pas d'erreur et passe au dossier suivant.
AlKaponn Messages postés 3 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 29 novembre 2005
28 nov. 2005 à 10:16
Bonjour,

Il a été tellement difficile de trouver du code permettant de faire une recherche sur un dique (tous les lecteurs d'un PC, avec ou sans les lecteurs réseau) que je l'ai réalisé moi-même (VB.NET2003, OS:XP Pro) : une fonction récursive appellée autant de fois qu'il y a de sous-dossiers.
Le problème que je rencontrais est le suivant : lorsque l'utilisateur n'est pas l'administrateur, la recherche plantait pour des raisons de sécurité (impossible d'explorer les sous-dossiers système ou non autorisés).
Je n'ai pas essayé ton programme mais traite t-il des problèmes de sécurité ?
Merci.
A+
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
24 nov. 2005 à 08:42
Ok, il y a deux attributs inconnus de VBExpress qu'il faut supprimer pour que ca compile, et après c'est OK, sauf que le formulaire est trop grand : tu devrais le faire plus petit avec ancrage des controles lorsque l'on agrandit le formulaire : avec VBExpress je crois que c'est moins difficile à faire qu'avec VB7.
fenhryl Messages postés 4 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 29 novembre 2005
23 nov. 2005 à 17:38
le zip a ete mis a jour, dsl ;)
je prend note de ton code, j'en aurai besoin pour la partie sauvegarde apres
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
23 nov. 2005 à 16:32
Le zip n'est pas complet pour compiler, il manque un dossier et le fichier .sln

A propos, je suis en train de faire un logiciel pour zipper une arborescence de fichier :

Public Function bZipperArbo(ByVal sCheminArbo$) As Boolean

' Zipper une arborescence de fichiers

Dim Files$() = IO.Directory.GetFileSystemEntries(sCheminArbo)
Dim sElement$
For Each sElement In Files
If m_bAnnuler Then Exit Function
If IO.Directory.Exists(sElement) Then
' L'élement est un sous-dossier : le zipper
If Not bZipperArbo(sElement) Then Exit Function
Else
' Sinon zipper le fichier
Dim sCheminFichier$ = IO.Path.GetFullPath(sElement)
Dim sFichier$ = IO.Path.GetFileName(sElement)
If Not bZipperFichier(sCheminFichier, sFichier) Then
m_bAnnuler = True
Exit Function
End If
End If
ElementSuivant:
Next sElement

bZipperArbo = True

End Function
ADSLASDL Messages postés 4 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 12 avril 2007
23 nov. 2005 à 13:34
En effet, la version du Framework était la cause. Bien joué Fenhryl, merci
fenhryl Messages postés 4 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 29 novembre 2005
23 nov. 2005 à 12:43
j'ai remis une nouvelle version avec un bug corrige, mais sans l'exe. tu pourra le trouver ici: http://membres.lycos.fr/thanif/RepInfo.exe

Sinon ce petit programme a ete ecrit sous visual basic 2005 express et fonctionne avec le framework 2.0 (peut etre pour ca que tu ne peut pas ouvrir le projet)
ADSLASDL Messages postés 4 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 12 avril 2007
23 nov. 2005 à 09:57
Bonjour,

ton code m'intéresse fortement mais malheureusement pas moyen de l'ouvrir ton projet.
L'exe est impossible à télécharger.

Merci
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
22 nov. 2005 à 22:59
Certes, le VB .NET n'apporte pas grand chose par rapport à VB6. Cependant, VB6 reste "limité" sur certaines fonctionnalités. En effet, c'est un peu laborieux de gerer des threads en VB, des pointeurs, traiter l'heritage, etc...
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 nov. 2005 à 22:15
Ce n'est pas vraiment l'endroit pour parler de cà, mais si tu as commencer par le VB.NET, je ne peux que te conseiller d'y rester : si tu passe au C# ou au C++.NET, tu n'y gagneras rien : quasiment les même fonctionnalités, avec la même rapidité d'éxécution (limité par le Framework), mais surtout, ca demandera plus de temps de développement pour faire le même programme qu'en VB.NET ! Ca fait juste plus "pro" sur un CV de programmer en C quelque chose, alors que le VB est encore mal vu, ce qui est bien dommage !

Passer au C++ te demandera beaucoup de courage : avec VB.NET, on a tendance à ne pas chercher plus loin que ce qui est proposé dans le Framework (vu qu'il est très complet), or en C++, il faut chercher en permanence des librairies permettant de faire telle ou telle chose.

Passer au Java ? Autant rester au .NET : Java est plus lourd, moins rapide, moins rapide à développer, plus compliqué à utiliser, mais portable à 100%, et permet de faire des applets, c'est vrai !

DarK Sidious
dvdstory Messages postés 192 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 10 août 2009
22 nov. 2005 à 21:50
J'ai aucune expérience du langage C# et C++.
Car au tout début j'ai que programmé en langage web comme l'HTML, JavaScript, PHP.
Et ensuite le VB.NET est mon premier vrai langage de programmmation pour faire des progs contrairement au langage web qui sont interprétés.
Je compte changer de langage de programmation d'ici peu, mais je sais pas vers quoi m'orienter.
Pourquoi pas le C# ou le C++ mais j'avais pensé au JAVA.
Qu'en penses-tu ?
Est-ce qu'il y a beaucoup de diférence entre le C#, C++, C#.NET, C++.NET.
Pour la JAVA sa ira je sais un peu à quoi sa ressemble.
Merci d'avance
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 nov. 2005 à 21:35
DVDSTORY : faut pas trop se poser la question concernant le .NET : il est tellement différent de vb6, et apporte si peu que beaucoup ont laissé tombé le vb pour se diriger vers C#, C++ ou ont continué en vb6. (c'est mon cas d'ailleurs !)

DarK Sidious
fenhryl Messages postés 4 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 29 novembre 2005
22 nov. 2005 à 20:38
Merci ;)
Ceci dit, sur VBfrance, j'en ai recherche j'en ai vu 3 ou 4 differents, mais manquait toujours le petit truc qu je voulais :D
dvdstory Messages postés 192 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 10 août 2009
22 nov. 2005 à 18:49
Tu te trompe des code comme les tien y en pas ten que sa sur internet. Encore moins sur vbfrance, surtout en ce qui concerne le .NET. Sur vbfrance il ni a pas beaucoups de code .net
Il y en a surement moins de 20%.
Donc ta source est très utile. ( C'est la seul que je connaisse en VB.NET qui traite ce sujet)

Merci beaucoup
Rejoignez-nous