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

Windows Forms Discussion :

VB 2008 Express Dossiers système empeche de faire une liste de fichiers..


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut VB 2008 Express Dossiers système empeche de faire une liste de fichiers..
    Bonjour,

    Je produits un module dans un programme qui va servir à chercher des fichiers dans les partitions du poste de travail.

    J'ai un treeview qui affiche de base les partitions accessibles sur le poste de travail et il est possible de voir les sous-dossiers (répertoires).

    Tout cela fonctionne.

    J'ai commencé le code pour lister les fichiers dans chaque dossier et sous-dossiers. J'ai encore des bugs pour lister le tout...

    Mais ou que ça bloque c'est lorsque le programme lit des dossiers "systèmes" tout arrête.... Voici ce que je peux avoir comme message d'erreur :
    L'accès au chemin d'accès 'D:\System Volume Information' est refusé.
    Je vous mets le code qui fait la liste des fichiers dans les dossiers et sous-dossier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
            Dim subdirs As String() = Directory.GetDirectories(Chemin) ' chemin est une variable globale qui contient le répertoire de départ pour la recherche
            Dim files As String() = Directory.GetFiles(Chemin)
            Dim toto As String = ""
     
            ' Si 0 sous dossier alors verifier les fichier sur racine,
            ' sinon on vérifie les fichier sur la racine et ensuite on vérifie chaque sous-dossier.
     
            If subdirs.Length = 0 Then ' si pas de sous-dossier alors on vérifie les fichiers sur racine.
                If files.Length <> 0 Then ' s'il y a des fichiers alors on vérifie chaque fichier.
                    For Each fichier As String In files
                        toto = toto & " " & Path.GetFileName(fichier) & " " ' pour l'instant je saisie tous les noms des fichiers.
                    Next
                    MsgBox(toto) ' afficher tous les fichiers trouvés.
                Else
                    MsgBox("Aucun résultat pour recherche!") ' avertir qu'il n'y a pas de fichier trouvé.
                End If
     
            Else ' on vérifie les sous-dossier
                For Each subrep As String In subdirs
     
                    If files.Length <> 0 Then
                        For Each fichier As String In files
                            toto = toto & " " & Path.GetFileName(fichier) & " "
                        Next
                    End If
                    files = Directory.GetFiles(subrep)
                Next
            msgbox (toto)
            End If
    SI je mets un try catch ça m'affiche un message me disant que le dossier n'est pas accessible...

    J'aimerais savoir comment faire pour que le programme lit seulement les dossiers standards et non système ?

    Merci

    AngelEvil!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Salut,

    Le message semble explicite pourtant. Ce dossier est un répertorie système dans lequel les logiciels n'ont pas le droit d'accès. Avec quelques manip sur la machine cible, c'est possible, mais as tu réellement besoin de voir les fichiers systèmes ?

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    héhéhé

    Je sais que le code lit les dossiers et fichiers systèmes..... et je ne veux pas qu'il le fasse!

    Je n'ai pas trouvé de code VB.NET qui peut "bloquer" la lecture de dossiers et fichiers systèmes....

    Mon post était et est : est-ce que vous savez comment faire en VB.NET pour bloquer la lecture de dossiers et fichiers systèmes ???? Il doit bien avoir une propriété quelque part qui indique si le dossier est "système" ? Si oui il me reste à coder : je saute ce dossier, sinon je liste les fichiers!

    Pis ce programme sera sur plusieurs postes et le client ne veut pas modifier la configuration des propriétés de lectures sur ses postes de travail.

    Merci

    AngelEvil!

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    C'est possible via les attributs du fichier en passant par File.GetAttributes(...).
    http://msdn.microsoft.com/fr-fr/libr...ttributes.aspx

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Je viens de lire et ça parle juste de fichier... Est-ce qu'il y a l'équivalent pour les dossiers ????

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Oui car le classe DirectoryInfo hérite de la meme classe.

  7. #7
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Est-ce que vous pouvez m'indiquer la ligne de commande à écrire pour valider si le dossier est "système" ?

    J'avoue que je suis perdu! Au pire si personne ne veut me donner la ligne de code je contournerai le problème...

    Merci!

    AngelEvil

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Il faut utiliser la classe DirectoryInfo. Lorsque tu as le chemin, tu peux en créer une instance, et regarder dans la propriété Attributes, via System.

    as tu compris ?

  9. #9
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Je regarde ça tout de suite.

    merci!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/01/2010, 09h22
  2. Problème pour faire une copie de fichier.
    Par damien99 dans le forum C++
    Réponses: 1
    Dernier message: 12/02/2006, 16h37
  3. [VB]faire une liste
    Par kleen3x dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/01/2006, 17h40
  4. Comment faire une liste d'image de choix ?
    Par poussinphp dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/10/2005, 00h34
  5. Faire une liste de device??
    Par jackjack dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2003, 14h43

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