Recupérer nom de fichier en C++

Résolu/Fermé
KiraX10A Messages postés 231 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 29 décembre 2016 - 3 mars 2010 à 11:04
KiraX10A Messages postés 231 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 29 décembre 2016 - 3 mars 2010 à 12:27
Bonjour,

Voilà, je souhaite récupérer simplement le noms des fichiers ou dossiers se trouvant dans un autre dossier.


J'ai fais ça pour le moment, il compile bien, me dit qu'il n'y a pas d'erreur mais a l'exécution, il me dit qu'il est incapable d'ouvrir le dossier spécifié:


int _tmain(int argc, _TCHAR* argv[])
{

	// Fichier à ouvrir
	ifstream fichier( "C:\\Documents and Settings\\bastien\\Bureau\\test" );
	if( fichier.is_open( ) == false )
	{
		cout << "ERREUR LORS DE L'OUVERTURE DU DOSSIER test" << endl;
		assert( false );
		return -1;
	}
	
	// Fichier dans lequel on réécrit
	ofstream Newfichier( "C:\\Documents and Settings\\bastien\\Bureau\\test.txt" );
	if ( Newfichier.is_open( ) == false )
	{
		cout << "ERREUR LORS DE L'OUVERTURE DU FICHIER test.txt" << endl;
		assert( false );
		return -1;
	}

	
	string ligne;

	getline( fichier, ligne );
	Newfichier << ligne << endl;

	while( fichier.eof( ) == false )
	{
		getline( fichier, ligne );
		Newfichier << ligne << endl;
	}

	cout << "Appuyez sur une touche...";
	getch( );
	return 0;



Voilà, si qqun aurait une suggestion ou autre ca m'aiderait bcp :).

Merci d'avance

Kira
A voir également:

10 réponses

choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
3 mars 2010 à 11:10
salut

c'est normal que dans ton chemin de fichier tu mettes "//", ce ne serait pas plutôt

"C:\\Documents and Settings\bastien\Bureau\test"

autre possibilité, tu dois peut être ajouter l'extension du fichier à ouvrir

"C:\\Documents and Settings\\bastien\\Bureau\\test.txt"

0
KiraX10A Messages postés 231 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 29 décembre 2016 20
3 mars 2010 à 11:16
Bonjour et merci de la réponse,

Je suis daccord sur le fait que si c'était un "fichier", il faudrait mettre l'extension, mais là ce que je veux faire c'est ouvrir un "dossierA" afin de récupérer le nom des fichiers ou sous-dossiers se trouvant dans "dossierA" :s.

Pour les "\\", j'ai vérifié et cec que j'ai mi est correct :s.


Merci encore
0
Bonjour,
@choubaka : les "\\" sont obligatoires, sinon le compilo va interpréter les "\x" comme des caractères spéciaux.

Comme dit dans la doc (que tu aurais du consulter):
"ifstream provides an interface to read data from files as input streams."
Ifstream permet de lire des FICHIERS. Un répertoire n'est pas un fichier.

D'ailleurs c'est trop drôle, tu lis ton répertoire comme un fichier, avec "getline" :
getline( fichier, ligne );
Qu'est-ce qu'une ligne dans un répertoire ? L'erreur paraît évidente...
0
KiraX10A Messages postés 231 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 29 décembre 2016 20
3 mars 2010 à 11:46
Erf, je viens de voir que tu avais posté avant Choubaka.

Oui mtn que tu le dis c'est vrai qu'une ligne dans une répertoire c'est assez confus...

Je suis en train de voir avec la fonction FindFile, celà pourrais etre une solution?

Merci sinon :)
0
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
3 mars 2010 à 11:22
ok ok ok

bizarre tout ça.

C'est pas un bête problème de droit ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
KiraX10A Messages postés 231 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 29 décembre 2016 20
3 mars 2010 à 11:28
J'ai également vérifié les droits mais je suis bien en administrateur et ai tous les droits :s...

Ou alors c'est que la fonction ifstream ne permet d'ouvrir que des fichiers?

Merci quand même :)
0
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
3 mars 2010 à 11:38
ça c'est possible, c'est même certain..

http://www.cplusplus.com/reference/fstream/ifstream/

0
KiraX10A Messages postés 231 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 29 décembre 2016 20
3 mars 2010 à 11:44
Ha je me disais aussi....
Du coup jss en train de me renseigner sur FindFile
=>https://codes-sources.commentcamarche.net/
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
3 mars 2010 à 12:07
0
KiraX10A Messages postés 231 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 29 décembre 2016 20
3 mars 2010 à 12:17
Salut :).

Merci, je vais voir ce que je peux en faire :)^^
0
KiraX10A Messages postés 231 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 29 décembre 2016 20
3 mars 2010 à 12:27
En fait c'est bon j'ai trouvé mdr ^^.

Rien à voir avec de la programmation; enfin, juste une petite manip à effectuer et le tour est joué.
=> https://forums.commentcamarche.net/forum/affich-37622029-windows-obtenir-la-liste-des-fichiers-d-un-dossier

Merci quand même a tous :)
0