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

Qt Discussion :

Lister des fichiers avec QFileSystemInfo


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Par défaut Lister des fichiers avec QFileSystemInfo
    Bonjour,

    J'aimerai réussir à avoir le nom des dossiers et sous dossiers d'un dossier données ( / par exemple) a partir d'un objet QFileSystemInfo.
    A priori cette classe scan les disques et classes les fichiers sous forme d'arbre (c'est ce qui m’intéresse).
    Seul problème, je pense mon temps sur la doc et impossible de comprendre comment faire pour avoir la liste des fichiers enfants d'un répertoire (par exemple).

    Donc si quelqu'un a un bout de code pour m'explique je le remercie d'avance !

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Bonjour,

    http://qt.developpez.com/faq/?page=f...ter-repertoire répond à ta question ? (pas facile à comprendre, tu devrais te relire )

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Par défaut
    Je suis déjà aller voir ces classes la et si je n'arrive pas à ce que je veux, j'irai probablement voir de ce coté la.

    Je vais reformuler mon problème.
    J'ai besoin d'obtenir l'arborescence de mon systèmes dans une classe tout en gardant le fait que les dossiers soit agencés sous formes d'arbre.
    Si j'ai bien compris (me corriger si je me trompe), la classe QFileSystemModel scan le système et génère l'arborescence du système. Donc a priori c'est exactement ce dont j'ai besoin.
    Sauf que je n'arrive absolument pas à extirper les données dot j'ai besoin de cette classe.
    Par exemple j'aimerai avoir la liste des fichiers contenu dans le dossier /home.

    J'espère avoir été plus clair

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Pour la clarté, je parlais surtout de fautes

    QFileSystemModel est un modèle, il s'utilise en principe avec une vue (voir le modèle/vue de Qt). L'exemple de la doc de cette classe est très clair pour ça car en 5 lignes de code on voit comment ça marche.
    Pour simplement extraire des données, tu peux le faire en bouclant sur les enfants de ton root index (voir la classe QModelIndex). Mais une classe modèle est vraiment spécifique au modèle/vue, il y a plus simple pour juste récupérer des données précises, par exemple QDir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QStringList listeFichiers = QDir ( "/home" ).entryList ( QDir::Files );
    (pour les dossiers courants et multiplateformes, tu as même des méthodes statiques, par exemple QDir::home() ).

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Par défaut
    Comme je l'ai déjà dit, j’essaie d'utiliser ce modèle parce qu'il correspond a priori exactement à ce dont j'ai besoin : l'ensemble de mon système sous forme d'arbre. D'autant plus qu'il doit être optimisé au niveau des scans des disques dur. Enfaite j’essaie de faire ma propre vue pour ce modèle.

    Pour simplement extraire des données, tu peux le faire en bouclant sur les enfants de ton root index (voir la classe QModelIndex)
    C'est exactement ce que je n'arrive pas à faire
    Je n'arrive pas à me servir de la classe QModelIndex, enfin j'arrive a rien de concret.

    Donc si quelqu'un aurait un exemple de code pour juste afficher le nom des fichiers enfants d'un dossier donné avec l'aide de QFileSystemModel se serait parfait.

    Merci d'avance.

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Ah, donc tu essayes vraiment d'utiliser le Modèle/Vue pour afficher cette arborescence, il fallait le dire ! Tu avais l'air de dire que c'était juste pour interroger le modèle (pour moi un arbre c'est pas forcément visuel d'où la mauvaise compréhension).

    Ceci devrait fonctionner (codé ici donc pas testé) :
    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
    QFileSystemModel *model = new QFileSystemModel;
    model->setRootPath( QDir::rootPath() );
     
    QModelIndex home = model->index ( "/home" );
    QModelIndexList homeFiles;
     
    if ( model->isDir ( home ) ) {
        int l_childCount = model->rowCount ( home );
     
        for ( int i = 0; i < childCount; i++ ) {
            QModelIndex child = home.child ( i, 0 );
     
            if ( !model->isDir ( child ) )
                homeFiles.append ( child );
        }
    }

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/06/2015, 00h44
  2. Lister/supprimer des fichiers avec une extension précise
    Par guiguiomr dans le forum VBScript
    Réponses: 10
    Dernier message: 20/05/2008, 10h34
  3. [Conception] Lister des fichiers avec une URL
    Par dontDeleteMe dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 20/03/2007, 08h16
  4. Transférer des fichiers avec un câble réseau
    Par denis finch dans le forum Développement
    Réponses: 5
    Dernier message: 08/11/2005, 16h08
  5. [ZIP]besoin de lire des fichiers avec l'extension tar.gz
    Par mathieublanc13 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 24/05/2004, 13h35

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