begin process at 2008 08 22 06:22:35
1 229 780 membres
51 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SCANNER UN DISQUE


Information sur la source

Catégorie :Fichier / Disque Niveau : Débutant Date de création : 03/07/2003 Date de mise à jour : 03/07/2003 17:51:34 Vu : 5 278

Note :
7,14 / 10 - par 7 personnes
7,14 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

Bonjour tout l monde!

Bon, je sais, vous allez me dire que ce code est déjà sur le site.

Cependant, je crois que le mien est le plus simple à comprendre parmis tous.
Non-seulement il est simple, mais il est rapide aussi. Enfin, je sais qu'on peut faire plus rapide en laissant le FileSystemObject qui est assez lent, mais ce code fonctionne très bien.

J'ai dit qu'il est simple, parce qu'aussi, il n'y a aucune option comme choisir le disque, ou le dossier... on n'est pas obligé de scanner un disque, cela peut aussi être un dossier, il suffit de changer la string appropriée.

Alors, voici le code. Un bouton Command1 et puis c'est tout. Il met le résultat dans un fichier .txt dont il faut taper le nom à la demande, le fichier est dans le répertoire du programme mais bien entendu, cela aussi peut-être changé. D'ailleurs, presque tout peut être changé!

Allez, voici le code :  

Source

  • 'N'oubliez pas de référencer Microsoft Scripting Runtime à votre programme...!
  • Dim fso As New FileSystemObject
  • Dim OutPut As Object
  • Private Sub Command1_Click()
  • On Error Resume Next
  • '#Déclarations
  • Dim NomFichierLog As String
  • NomFichierLog = InputBox("Quel sera le nom du fichier?")
  • '#Affectations
  • Set OutPut = fso.OpenTextFile(App.Path & "\" & NomFichierLog & ".txt", ForWriting, True)
  • '#Exécution
  • Scan "C:\"
  • End Sub
  • Private Sub Scan(DossierEnCours As String)
  • On Error Resume Next
  • '#Déclarations
  • Dim Dossier As Folder
  • Dim SousDossier As Folder
  • Dim Fichier As File
  • '#Affectations
  • Set Dossier = fso.GetFolder(DossierEnCours)
  • '#Exécution
  • 'Fichiers
  • For Each Fichier In Dossier.Files
  • OutPut.WriteLine Fichier.Path
  • Next Fichier
  • 'Dossiers
  • For Each SousDossier In Dossier.SubFolders
  • OutPut.WriteLine SousDossier.Path
  • Scan SousDossier.Path & "\"
  • Next SousDossier
  • End Sub
'N'oubliez pas de référencer Microsoft Scripting Runtime à votre programme...!
Dim fso As New FileSystemObject
Dim OutPut As Object

Private Sub Command1_Click()
    On Error Resume Next
    
    '#Déclarations
    Dim NomFichierLog As String
    NomFichierLog = InputBox("Quel sera le nom du fichier?")
    
    '#Affectations
    Set OutPut = fso.OpenTextFile(App.Path & "\" & NomFichierLog & ".txt", ForWriting, True)
    
    '#Exécution
    Scan "C:\"

End Sub

Private Sub Scan(DossierEnCours As String)
    On Error Resume Next
    
    '#Déclarations
    Dim Dossier As Folder
    Dim SousDossier As Folder
    Dim Fichier As File
    
    '#Affectations
    Set Dossier = fso.GetFolder(DossierEnCours)
    
    '#Exécution
        
        'Fichiers
            For Each Fichier In Dossier.Files
                OutPut.WriteLine Fichier.Path
            Next Fichier
        'Dossiers
            For Each SousDossier In Dossier.SubFolders
                OutPut.WriteLine SousDossier.Path
                Scan SousDossier.Path & "\"
            Next SousDossier

End Sub
  

Conclusion

Voilà.

J'ai dû rajouté le On Error Resume Next parce que Windows ne permet pas l'accès à tous les dossiers (en tout cas chez XP), et donc cela faisait une erreur et quittait le programme. Maintenant, le programme passe sans en tenir compte.

C'est tout.

Post Scriptum : Soyez indulgents s'il vous plait, je sais qu'il y a des sources comme ça sur le site, mais je crois qu'elle a droit de paraître aussi.

Bye,

Jujufouq  
  • signaler à un administrateur
    Commentaire de ICIoBRa le 03/07/2003 21:04:26

    10/10

  • signaler à un administrateur
    Commentaire de max12 le 04/07/2003 03:49:05 administrateur CS

    Déjà la p-ê, mais c'est surement le plus simple

  • signaler à un administrateur
    Commentaire de Jujufouq le 04/07/2003 13:40:22

    Wouah!!!!  Vous ne pouvez pas imaginer combien grande ouverte est ma bouche devant vos commentaires et cette note!!!
    Je crois que j'avais trop peur de me faire mal critiquer...

    Vous ne pouvez pas savoir combien cela me fait du bien, vos commentaires. Merci à tous les deux, je crois que vous m'avez vraiment touché!

    Merci encore!

  • signaler à un administrateur
    Commentaire de Base le 04/07/2003 13:55:44

    Désolé de mettre un bémole... Mais il faut un runtime de plus... Perso, je trouve que VB en demande bien assez comme ça... 7/10 kan même pour la simplicité ;)

  • signaler à un administrateur
    Commentaire de Neo.balastik le 31/07/2003 20:43:06

    Autre bémole.  Un code plus court n'est pas forcément plus rapide.  Dans ce cas il utilise FSO, donc une référence de plus à une bibliothèqe propre a IE4 et plus haut.

  • signaler à un administrateur
    Commentaire de Jujufouq le 31/07/2003 21:42:16

    Ben oui, je sais, mais là si t'es pas content, t'avais qu'à lire ce que j'ai écrit avant et après le code, parce que je l'avais précisé. Merci de ne pas mettre des commentaires inutiles...

  • signaler à un administrateur
    Commentaire de Neo.balastik le 31/07/2003 22:41:14

    Désolé je n'avais pas bien lu ;O)  Mais de là à dire que mon commentaire est inutile, il y a une marge...  Tu savais que FSO était seulement disponible avec IE4 et plus ?

  • signaler à un administrateur
    Commentaire de exatex le 19/03/2004 18:05:24

    Bon code, j'avais des probleme avec FSO, et ca m'a permis de les regler! C'est simple et efficace.

    merci.

  • signaler à un administrateur
    Commentaire de jonath13 le 08/10/2004 14:59:45

    Bon code 8/10

  • signaler à un administrateur
    Commentaire de jonath13 le 08/10/2004 14:59:58

    Bon code 8/10

  • signaler à un administrateur
    Commentaire de nounours_du_45 le 01/11/2004 18:41:13

    Salut a tous,
    je suis débutant dans le VB, mais il y a plein d'erreur lorsque je copie la source et que je le colle dans VB6...

    Dim fso As New FileSystemObject
        Dim Dossier As Folder
        Dim SousDossier As Folder
        Dim Fichier As File

    il m(inquide une erreur " Type défni par l'utilsateur non défini"

    pouvez vous m'aider...

    J'ai aussi visual basic .net

  • signaler à un administrateur
    Commentaire de Jujufouq le 25/01/2005 00:35:45

    Oui tranquille... enfin, je n'ai pas touché à VB6 depuis des lustres, et ne suis pas passé véritablement à VB.NET, mais dans mon souvenir (ce code étant pour VB6), tu as oublié une étape importante! Lorsque je parle de FileSystemObject, il s'agit dun object contenu dans une dll. Il faut que tu l'inclue dans ton projet. Mais ne me demande pas par quel menu passer pour ça! Ce serait pas "Projet > Références" ? En tout cas tu dois retrouver une liste de dll, et là je fais appelle aux autres programmateurs qui programment toujours en VB6 pour te donner le nom à sélectionner dans la liste! Je l'ai complètement zappé celui-là... mais il doit être dans les "Internet..." + quelque chose... ou "MS Internet scripting runtime library"... enfin tu vois... un truc du genre.
    Si tu ne l'inclues pas, tu ne peux pas utilisé l'objet FileSystemObject ni Folder ni Folders ni File ni Files ni les autres qui sont inclus dans cette bibliothèque. J'espère t'avoir aidé! ++

  • signaler à un administrateur
    Commentaire de Shendoo le 22/02/2006 21:16:20

    pkoi po ^^ un zip pour cecode dis moi ,
    8/10

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS