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 Presentation Foundation Discussion :

Problème lister dossier, je ne vois pas d'où vient l'erreur


Sujet :

Windows Presentation Foundation

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Points : 79
    Points
    79
    Par défaut Problème lister dossier, je ne vois pas d'où vient l'erreur
    Bonsor,
    Voila je me lance dans le C#, je voudrais lister les dossiers de mes disques durs, avoir le même genre de rendu que l'explorateur windows. Voila le début:


    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
    TreeViewItem treeRoot = new TreeViewItem();
                treeRoot.Header = "Computeur";
                treeView1.Items.Add(treeRoot);
     
                String[] dd = Directory.GetLogicalDrives();
                foreach(String disk in dd)
                {
                    TreeViewItem diskItem = new TreeViewItem();
                    diskItem.Header=disk;
                    treeRoot.Items.Add(diskItem);
     
                    System.Console.WriteLine(disk);
                    String[] folders = Directory.GetDirectories(disk.Trim());
                    .....
                }
    J'ai une ligne qui me lève une exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] folders = Directory.GetDirectories(disk.Trim());
    Si je l'enlève, voici le résultat dans la console.
    C:\
    D:\
    E:\
    Par contre si je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] folders = Directory.GetDirectories("c:\\");
    cela fonctionne.

    L'exception est de type: XamlParseException.
    Quelqu'un peut il me dire d'où vient le problème svp.
    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Le problème vient du fait que tu essayes de récupérer les répertoires d'un device qui n'est pas prêt. Par device pas prêt, j'entends par là un lecteur disquette sans disquette ou encore un lecteur cd sans cd.

    En fait, le message clair de ton exception se trouve dans la propriété InnerException et là tu finiras par trouver le message d'exception suivant :

    The device is not ready.
    De type System.IOException.
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Si tu veux, dans le WPF Bag'O'Tricks de Kevin Moore, tu as un exemple de contrôle Explorateur: tu pourrais en apprendre pas mal

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Points : 79
    Points
    79
    Par défaut
    Merci pour ces deux réponses.
    Tout d'abord j'ai regardé l'exception est en effet c'est exactement ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try
    {
         folders = Directory.GetDirectories(disk);
         ......
    }
    catch(IOException e)
    {
         System.Console.WriteLine("--- Begin Exception " + disk + "---");
         System.Console.WriteLine(e);
         System.Console.WriteLine("--- End Exception ---");
    }
    System.IO.IOException: Le périphérique n'est pas prêt.
    Par contre j'ai essayé de faire System.Console.WriteLine(e.InnerException) mais je n'ai rein dedans, comment cela s'utilise stp?

    Puis pour ce qui est de WPF Bag'O'Tricks de Kevin Moore, je viens de télécharger les sources sur son site, il a fait un super truc. Vraiment génial, merci à vous deux.

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Sinon, pour énumérer efficacement les lecteurs (et ne pas avoir l'erreur) :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach (var item in DriveInfo.GetDrives())
                {
                    if(item.IsReady)
                    {
                         /* traitement */
                    }
                }

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Points : 79
    Points
    79
    Par défaut
    A ouais c'est vraiment pas bête ça. Je vais le faire comme ça.
    Merci

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

Discussions similaires

  1. je ne vois pas où est le problème de type
    Par Discovery dans le forum Débuter
    Réponses: 2
    Dernier message: 14/05/2009, 15h29
  2. [OCaml]Problème dans un module: je vois pas..
    Par lucky84 dans le forum Caml
    Réponses: 2
    Dernier message: 21/01/2009, 14h03
  3. Réponses: 2
    Dernier message: 25/02/2008, 11h25
  4. [Tableaux] un problème que je ne vois pas?
    Par Skeud007 dans le forum Langage
    Réponses: 11
    Dernier message: 07/10/2006, 23h24
  5. Je vois pas d'où vient mon erreur!! Aidez moi SVP
    Par liliboms dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/04/2005, 08h25

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