IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Probleme de recherche récursive de fichiers


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut Probleme de recherche récursive de fichiers
    J'ai besoin d'analyser tous fichiers sur les disques locaux.
    J'utilise donc cette fonction bien simple que je pointe à la racine du disque (par exemple C:\ ) pour rechercher les fichiers dans tous les sous-répertoires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each foundFile As String In My.Computer.FileSystem.GetFiles(drivetoScan, FileIO.SearchOption.SearchAllSubDirectories)
    ' CODE D'ANALYSE ICI...
    Next
    Ça fonctionne bien jusqu'à ce qu'il tombe sur un répertoire dont je n'ai pas les droits (dans un autre profil de Documents & Settings). Je soupçonne qu'une erreur sera aussi générée quand il tombera sur un dossier systeme (comme System Volume Information).

    Je cherche donc un moyen de sauter par dessus ce repertoire si une erreur survient.

    L'erreur survient sur la première ligne (For Each foundFile...). Je ne peux donc pas vérifier le répertoire avant qu'il arrive dessus et si je met un On Error Resume Next, il ne saute pas seulement le répertoire actuel mais le disque en entier pour passer au disque suivant dans ma liste.

    Quelqu'un a une idée de génie ?

  2. #2
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Juste après la ligne For .... to .... tu ajoutes :

    sinon tu peux aussi gérer les exceptions avec des try catch, c'est peut etre plus propre.

    bonne continuation

  3. #3
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Non le mieux c'est d'utiliser un Try Catch. Mais le mieux c'est d'utiliser sa propre fonction récursive comme ca plus de probleme :

    Va voir la
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut
    Merci de vos réponses !

    Max je ne peux pas mettre le On Error Resume Next à l'intérieur de ma boucle For / Next car l'erreur suivient à la première ligne (la ligne du For Each...)

    J'ai esseyé avec un Try mais sans succès. Je Catch l'erreur mais je suis incapable de lui dire de continuer avec le répertoire suivant puisque je n'ai aucun contrôle sur la fonction.

    Je voulais éviter de faire ma propre fonction de recherche récursive mais je crois que je n'aurai pas le choix...

    Je pensais que peut-être on pouvait avoir plus de contrôle sur My.Computer.FileSystem.GetFiles

  5. #5
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par JbTech
    Je pensais que peut-être on pouvait avoir plus de contrôle sur My.Computer.FileSystem.GetFiles
    Non ! Créer ses propres fonctions c'est mieux car tu as 100% de controles dessus...

    Va voir mon lien tu as un exemple tout fait deja
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut
    Merci pour ton aide Aspic !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche récursive de fichiers via l'extension
    Par twisst dans le forum NetBeans
    Réponses: 1
    Dernier message: 15/04/2013, 15h02
  2. Recherche récursive + déplacement fichiers .pst
    Par AbunaE dans le forum VBScript
    Réponses: 9
    Dernier message: 31/03/2011, 16h13
  3. Recherche récursive de fichier
    Par maxshell dans le forum x86 32-bits / 64-bits
    Réponses: 0
    Dernier message: 31/07/2009, 11h15
  4. Recherche récursive de fichiers
    Par atm0sfe4r dans le forum wxWidgets
    Réponses: 2
    Dernier message: 22/04/2009, 10h54
  5. Probleme dans mon code recherche dans un fichier Xml
    Par dederfred dans le forum Delphi
    Réponses: 11
    Dernier message: 21/10/2006, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo