Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.3.1 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

[Qt4] Liste de fichiers

Bonjour,

Lorsque je récupère la liste des éléments d'un répertoire, qt me met également en liste '.' et '..' :

QDir dir(QString((Monrepertoire)));
QStringList listeFichiers = dir.entryList();

Et lorsque j'ajoute le filtre QDir::NoDotAndDotDot dans entryList, le compilo me dit que NoDotAndDotDot n'est pas dans QDir...

Comment se fait-ce ??

Merci

Réponses

  • Salut,

    Voila un code que j'ai ecrit et testé.
    Ca ne fonctionne que pour Qt 4.1.0 minimum ( car le Dot... est une nouvelle enum qui n'apparaissait pas dans la version precedente )

    @ +



    #include
    #include
    //
    #include // std, cout, endl
    //
    int main( int argc, char ** argv )
    {
    using namespace std;
    QCoreApplication app( argc, argv );
    //
    QDir d;
    QStringList list = d.entryList( QDir::AllEntries | QDir::NoDotAndDotDot );
    foreach ( QString string, list )
    cout << qPrintable( string ) << endl;
    //
    system( "pause" );
    return 0;
    }
  • Ah oui... j'ai la 4.0.1

    Donc je suis obligé d'enlever les '.' et '..' manuellement de la liste sans passer par les filtres je suppose...

    Merci
  • moi je voudrais faire un loader de plugins .so pour l'instant j'utilise

    filename = new QStringList(dir->entryList());
    std::cout << qPrintable(filename+".so"->at(0)) << std::endl;

    pour afficher dans mon terminal les fichiers mais ca ne marche pas .. dsl mais je suis débutante
    Comment puis-je faire?


    merci d'avance
  • Salut,
    Ce filename+".so"->at(0) me paraît bizarre; si c'est bien l'erreur, tu devrais plutôt utiliser: filename->at(i) + ".so".
    Sinon, qu'est-ce que l'erreur rééllement?
  • c'est bon j'ai trouvé mon réponse!
    Grosse erreur de ma part le dir n'étais pas créé ^^


    Merci quand même pour tout !
  • Salut,
    Je me joins a IrmatDen, ton écriture est pour le moins bizarre (je dis pas qu'elle ne marche pas ;) ):
    Je te file un bout de code moins choquant (je trouve ;) )
     QDir plgDir=QDir(TONPATH,"*.so",QDir::Name,QDir::Files);
    foreach (QString fileName, plgDir.entryList(QDir::Files))
    qDebug()<<"Fichier so : "<<plgDir.absoluteFilePath(fileName);
    Ludo
  • December 2006 modifié
    Sinon y aura ça dans Qt 4.3:
    QDirIterator it("/home/ahanssen", QDirIterator::Subdirectories);
    while (it.hasNext()) {
    qDebug() < < it.next();

    // "testDir/."
    // "testDir/.."
    // "testDir/directory"
    // "testDir/directory/."
    // "testDir/directory/.."
    // "testDir/directory/fileInDirectory.txt"
    // "testDir/directory/dirInDirectory/otherfile.txt"
    // "testDir/file.txt"
    }
    :)
Connectez-vous ou Inscrivez-vous pour répondre.