FindFirstFile sans windows.h [Résolu]

Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
- - Dernière réponse : ndubien
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
- 4 mars 2011 à 15:21
Bonjour,

Je souhaiterais développer une application compatible avec plusieurs plateformes (Windows, Linux, MacOS) et j'aurais besoin d'une fonction pour lister les fichiers d'un répertoire comme FindFirstFile de windows.h mais compatible avec toutes les plateformes.
J'ai prévu d'utiliser GTKmm pour l'interface graphique, y-aurait-t'il un moyen de lister les fichiers d'un répertoire sans windows.h (en c++ ou dans gtkmm) ?

Merci d'avance et à bientôt...
Nico
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
3
Merci
boost::filesystem :)

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 215 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cptpingu
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
3
Merci
Salut
Ou regarde http://en.wikipedia.org/wiki/Dirent.h

A+

____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 215 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Pistol_Pete
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
2
0
Merci
Bonjour,

Comment utilise-t'on boost::filesystem ?

Merci d'avance et à bientôt...
Nico
Commenter la réponse de ndubien
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
0
Merci
Faire du C++ sans boost, ça devient rare. Boost est en partie inclut dans le prochain standard du C++, c'est pour dire l'importance de cette bibliothèque.
Tuto ici:
http://www.boost.org/doc/libs/1_46_0/libs/filesystem/v3/doc/tutorial.html

@Pistol_Pete: D'après le lien que tu as donné: Microsoft Visual C++ does not include dirent.h, ce n'est pas standard, tout comme boost. Mais ça reste une très bonne idée :)

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Commenter la réponse de cptpingu
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
0
Merci
Ce n'est effectivement pas standard, néanmoins, cela évite d'inclure une usine à gaz pour lister les fichiers d'un répertoire...
A+

____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.
Commenter la réponse de Pistol_Pete
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
0
Merci
@Pistol_Pete: S'il n'a pas vocation à utiliser boost, je suis tout à fait d'accord avec toi. Ta solution est une excellente idée. Ce que je mettais en avant, c'est que faire du C++ sans boost, se fait rare, et qu'on possède donc généralement déjà la bibliothèque.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Commenter la réponse de cptpingu
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
2
0
Merci
Bonjour,

Je viens d'essayer ce qui m'a été proposé par Pistol_Pete et ça fonctionne bien, pour le boost, je regarderais ça un peu plus tard mais ça m'intéresse bien.
Une autre question me vient à l'esprit, est-il (ou plutôt comment) possible de savoir s'il s'agit d'un dossier, ou d'un fichier ou de rien ?

Merci d'avance et à bientôt...
Nico
Commenter la réponse de ndubien
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
2
0
Merci
Bonjour,

Pour savoir si le chemin mène à un dossier ou un fichier, je pense avoir trouvé quelque chose avec boost du genre is_regular_file ou is_directory (à approffondir) mais voulais savoir si c'était possible en c++ standard ?

Merci d'avance et à bientôt...
Nico
Commenter la réponse de ndubien
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
0
Merci
Sous windows c'est GetFileAttributes() mais je ne connais pas l'équivalent portable.

As tu essayé de faire un fopen sur un répertoire? Il doit surement faire une erreur non?
A+
____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.
Commenter la réponse de Pistol_Pete
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
0
Merci
Sous Unix:
http://drocourt.info/cours/Unix/C-Programmation_Systeme/prog_sys5.xhtml

Mais, je ne connais pas de fonction portable pour le faire (à part boost ou vérifier la réussite de l'ouverture d'un fichier).

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Commenter la réponse de cptpingu
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
2
0
Merci
Merci à tous les deux,
je vais essayer d'utiliser une astuce style fopen...
mais je passerai surement à boost

Encore merci et à bientôt !
Commenter la réponse de ndubien