Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lire le contenu d'un répertoire en C++

56 réponses
Avatar
oxidor trucidel
Salut,

Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).

J'ai cherché sans succès avec google et suis encore occuper
à fouiller les archives de cppfrance.com.

--
Oxidor Trucidel

10 réponses

1 2 3 4 5
Avatar
Christophe de VIENNE
oxidor trucidel wrote:
Salut,

Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).


Il n'y a pas de solution standard C++ car la notion de répertoire n'y
existe pas.

La réponse dépend en fait de ton système d'exploitation (et il faut
poser la question sur un forum dédié à ce dernier, par exemple
fr.comp.os.ms-windows.programmation).

Néammoins il existe des bibliothèques qui proposent une API portable
pour l'accès aux dossiers.
Entre autres, http://www.boost.org/libs/filesystem/doc/index.htm.

A+

Christophe

--
Christophe de Vienne

Avatar
Jean-Marc Bourguet
"oxidor trucidel" writes:

Salut,

Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).

J'ai cherché sans succès avec google


C'est quoi ta requete? J'ai 69 reponses avec

contenu d'un repertoire group:fr.comp.lang.c++

sur http://www.google.com/groups.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
Arnaud Debaene
oxidor trucidel wrote:
Salut,

Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).

J'ai cherché sans succès avec google et suis encore occuper
à fouiller les archives de cppfrance.com.


Il n'y a pas de solution standard pour çà en C++ : ca dépend de ton OS.

Il y a bien une "tentative" de normalisation avec la librairie filesystem de
boost (www.boost.org), mais c'est exagérément complexe par rapport à ton
besoin, et ca fait surtout appel à des conepts avancés que tu ne dois pas
encore maîtriser si tu débutes. Je te conseilles dans un 1er temps
d'utiliser la solution spécifique à ton OS, càd à reposer ta question sur un
groupe dédié à la programmation sur ton OS.

Arnaud

Avatar
oxidor trucidel
"Christophe de VIENNE" a écrit:

oxidor trucidel wrote:

Salut,

Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).


Il n'y a pas de solution standard C++ car la notion de répertoire n'y
existe pas.

La réponse dépend en fait de ton système d'exploitation (et il faut
poser la question sur un forum dédié à ce dernier, par exemple
fr.comp.os.ms-windows.programmation).


Bin, je programme plutot linux, mais j'aurais préféré une solution qui
conviennent quel que soit le système d'exploitation

Néammoins il existe des bibliothèques qui proposent une API portable
pour l'accès aux dossiers.
Entre autres, http://www.boost.org/libs/filesystem/doc/index.htm.


Je vais jeter un coup d'oeil dessus...

Merci beaucoup.

--
Oxidor Trucidel


Avatar
oxidor trucidel
"Jean-Marc Bourguet" a écrit:

"oxidor trucidel" writes:

Salut,

Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).

J'ai cherché sans succès avec google


C'est quoi ta requete? J'ai 69 reponses avec

contenu d'un repertoire group:fr.comp.lang.c++

sur http://www.google.com/groups.


C'était une recherche sur le web "en général" (et non sur les newsgroup),
mais je vais réessayer.

--
Oxidor Trucidel


Avatar
oxidor trucidel
"Arnaud Debaene" a écrit

oxidor trucidel wrote:
Salut,

Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).

J'ai cherché sans succès avec google et suis encore occuper
à fouiller les archives de cppfrance.com.


Il n'y a pas de solution standard pour çà en C++ : ca dépend de ton OS.

Il y a bien une "tentative" de normalisation avec la librairie filesystem
de

boost (www.boost.org), mais c'est exagérément complexe par rapport à ton
besoin, et ca fait surtout appel à des conepts avancés que tu ne dois pas
encore maîtriser si tu débutes. Je te conseilles dans un 1er temps
d'utiliser la solution spécifique à ton OS, càd à reposer ta question sur
un

groupe dédié à la programmation sur ton OS.


Je vais jeter un coup d'oeil à cette tentative... mais si ça me semble
effectivement
trop compliqué, je reviendrai à une solution plus simple.

Le but final de l'opération est, tout simplement, de sauvegarder des données
et
de lire le répertoire pour vérifier si des données s'y trouvent déjà.

--
Oxidor Trucidel


Avatar
Cyrille Karmann
"oxidor trucidel" disait:
"Christophe de VIENNE" a écrit:

Néammoins il existe des bibliothèques qui proposent une API portable
pour l'accès aux dossiers.
Entre autres, http://www.boost.org/libs/filesystem/doc/index.htm.


Je vais jeter un coup d'oeil dessus...

Merci beaucoup.


wxWidgets (anciennement wxWindows) a aussi un truc du genre:
http://www.wxwindows.org/manuals/2.4.2/wx112.htm#wxdir

--
Cyrille


Avatar
Loïc Joly
oxidor trucidel wrote:

je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).
[...]




Le but final de l'opération est, tout simplement, de sauvegarder des données
et
de lire le répertoire pour vérifier si des données s'y trouvent déjà.



Dans ce cas là, le plus simple n'est pas de lire le répertoire, mais
simplement de relire le fichier. Déjà, si on vérifie le type de retour
de close, on doit être pas mal.

int main()
{
ofstream os("PersoDD3.5.txt");
os << "Level 25" << endl;
if (!os.close())
{
cout << "Erreur de sauvegarde" << endl;
}
}

Par contre, comme l'OS peut cacher des informations en faisant croire
que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une
sécurité absolue.

--
Loïc



Avatar
oxidor trucidel
"Loïc Joly" a écrit

oxidor trucidel wrote:

je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).





[...]

Le but final de l'opération est, tout simplement, de sauvegarder
des donnée et de lire le répertoire pour vérifier si des données
s'y trouvent déjà.


Dans ce cas là, le plus simple n'est pas de lire le répertoire, mais
simplement de relire le fichier. Déjà, si on vérifie le type de retour
de close, on doit être pas mal.

int main()
{
ofstream os("PersoDD3.5.txt");
os << "Level 25" << endl;
if (!os.close())
{
cout << "Erreur de sauvegarde" << endl;
}
}


DD3.5 ? Non, je suis encore à DD3.0

ok, c'est effectivement plus simple... mais si le programme au départ
n'a pas le nom complet des fichiers recherchés ?

Comme solution provisoire, je pense mettre à jour un fichier qui liste
toutes les sauvegardes.

Par contre, comme l'OS peut cacher des informations en faisant croire
que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une
sécurité absolue.


Ah, certains OS sont plus cachotiers que d'autres.

--
Oxidor Trucidel




Avatar
drkm
Loïc Joly writes:

ofstream os("PersoDD3.5.txt");
os << "Level 25" << endl;
if (!os.close())
{
cout << "Erreur de sauvegarde" << endl;
}


Il me semblait que std::basic_ofstream<>::close() ne retournait pas
de valeur. Ne doit-on pas plutôt utiliser :

if ( ! os.rdbuf()->close() ) {
// erreur
}

?

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html

1 2 3 4 5