Question simple : verifier repertoire

flatmax Messages postés 37 Date d'inscription jeudi 9 mai 2002 Statut Membre Dernière intervention 30 août 2003 - 13 août 2003 à 01:56
Rolapin Messages postés 5 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 14 avril 2005 - 22 mars 2005 à 18:01
salut a tous
j'ai cherché sur le forum et dans les sources pour repondre a ma question, mais aucun resultat : comment verifier l'existence d'un repertoire ?
j'ai trouvé une astuce, si on connait un fichier figurant dans le fameux repertoire, il suffit de verifier si le fichier existe bien.
Mais dans le cas ou l'on ne connait que le chemin du dossier, comment verifier s'il existe bien en c++ ?

Pout c++ builder il existe une fonction DirectoryExists(), mais pour visual c++ 6 ?
merci d'avance

8 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
13 août 2003 à 02:10
Salut,
CreateFile avec OPEN_EXISTING non ?
Si le dossier existe ca l'ouvre, sinon ca echoue.
J'ai pas testé mais je pense que ca marche.
0
flatmax Messages postés 37 Date d'inscription jeudi 9 mai 2002 Statut Membre Dernière intervention 30 août 2003
13 août 2003 à 02:43
-------------------------------
Réponse au message :
-------------------------------

> Salut,
> CreateFile avec OPEN_EXISTING non ?
> Si le dossier existe ca l'ouvre, sinon ca echoue.
> J'ai pas testé mais je pense que ca marche.
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > salut a tous
> > j'ai cherché sur le forum et dans les sources pour repondre a ma question, mais aucun resultat : comment verifier l'existence d'un repertoire ?
> > j'ai trouvé une astuce, si on connait un fichier figurant dans le fameux repertoire, il suffit de verifier si le fichier existe bien.
> > Mais dans le cas ou l'on ne connait que le chemin du dossier, comment verifier s'il existe bien en c++ ?
> >
> > Pout c++ builder il existe une fonction DirectoryExists(), mais pour visual c++ 6 ?
> > merci d'avance
>

tu veux dire qu'en créant un fichier ds le repertoire, et en testant si le fichier est bien la on peux connaitre la reponse ?
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
13 août 2003 à 03:00
Salut,
j'ai trouvé mieux:
GetFileAttributes(...);
Si ca retourne FILE_ATTRIBUTE_DIRECTORY c'est un dossier, sinon c'est autre chose/ca n'existe pas.
0
flatmax Messages postés 37 Date d'inscription jeudi 9 mai 2002 Statut Membre Dernière intervention 30 août 2003
13 août 2003 à 12:16
-------------------------------
Réponse au message :
-------------------------------

> Salut,
> j'ai trouvé mieux:
> GetFileAttributes(...);
> Si ca retourne FILE_ATTRIBUTE_DIRECTORY c'est un dossier, sinon c'est autre chose/ca n'existe pas.
>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Salut,
> > > CreateFile avec OPEN_EXISTING non ?
> > > Si le dossier existe ca l'ouvre, sinon ca echoue.
> > > J'ai pas testé mais je pense que ca marche.
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > salut a tous
> > > > j'ai cherché sur le forum et dans les sources pour repondre a ma question, mais aucun resultat : comment verifier l'existence d'un repertoire ?
> > > > j'ai trouvé une astuce, si on connait un fichier figurant dans le fameux repertoire, il suffit de verifier si le fichier existe bien.
> > > > Mais dans le cas ou l'on ne connait que le chemin du dossier, comment verifier s'il existe bien en c++ ?
> > > >
> > > > Pout c++ builder il existe une fonction DirectoryExists(), mais pour visual c++ 6 ?
> > > > merci d'avance
> > >
> >
> > tu veux dire qu'en créant un fichier ds le repertoire, et en testant si le fichier est bien la on peux connaitre la reponse ?
>

merci pour tes reponses, je vais essayer ca : )
0

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

Posez votre question
flatmax Messages postés 37 Date d'inscription jeudi 9 mai 2002 Statut Membre Dernière intervention 30 août 2003
13 août 2003 à 12:53
-------------------------------
Réponse au message :
-------------------------------

> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> > j'ai trouvé mieux:
> > GetFileAttributes(...);
> > Si ca retourne FILE_ATTRIBUTE_DIRECTORY c'est un dossier, sinon c'est autre chose/ca n'existe pas.
> >
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Salut,
> > > > CreateFile avec OPEN_EXISTING non ?
> > > > Si le dossier existe ca l'ouvre, sinon ca echoue.
> > > > J'ai pas testé mais je pense que ca marche.
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > salut a tous
> > > > > j'ai cherché sur le forum et dans les sources pour repondre a ma question, mais aucun resultat : comment verifier l'existence d'un repertoire ?
> > > > > j'ai trouvé une astuce, si on connait un fichier figurant dans le fameux repertoire, il suffit de verifier si le fichier existe bien.
> > > > > Mais dans le cas ou l'on ne connait que le chemin du dossier, comment verifier s'il existe bien en c++ ?
> > > > >
> > > > > Pout c++ builder il existe une fonction DirectoryExists(), mais pour visual c++ 6 ?
> > > > > merci d'avance
> > > >
> > >
> > > tu veux dire qu'en créant un fichier ds le repertoire, et en testant si le fichier est bien la on peux connaitre la reponse ?
> >
>
> merci pour tes reponses, je vais essayer ca : )

voila un petit code qui permet d'utiliser cette fonction :

#include <windows.h>
#include <string.h>

int main()
{
char dossier[20+1] = "C:\\Mes Documents\";
if (GetFileAttributes(dossier) == FILE_ATTRIBUTE_DIRECTORY)
{
cout << "Le repertoire : " << dossier << " existe." << endl;
}
else
{
cout << "Le repertoire : " << dossier << " n'existe pas." <<edl;
}

return 0;
}

en esperant que ce code aidera ceux qui se poseront la meme question que moi ;)
0
coyoterunstar Messages postés 14 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 19 octobre 2004
19 oct. 2004 à 02:47
Il existe plus direct selon moi ..
Je propose cette méthode (que les letceurs de la MSDN n'auront pas manqué)

Cette métode fonctionne pour les fichiers aussi, vous pouvez tester différents paramètres comme :

00 : Existence only
02 : Write permission
04 : Read permission
06 : Read and write permission

..:: Pour un répertoire ::..
Imaginons que dans StrTemp, j'ai le chemin du répertoire dont je veux tester l'existence, et si il n'existe pas, je le créé, ba ca donne ca :
if( (_access( StrTemp, 0 )) == -1 )
{
CreateDirectory(StrTemp,0);
}

..:: Pour un fichier ::..
void main( void )
{
//Vérifie l'existance du fichier :
if( (_access( "fichier.txt", 0 )) != -1 )
{
printf( "Le fichier existe bien\n" );
//Vérifions que l'on peut écrire dedans :
if( (_access( "fichier.txt", 2 )) != -1 )
printf( "Nous pouvons écrire dans le fichier !!!\n" );
}
}

voilou !!
Moi c'est ce que j'utilise ..

KoYoTe
0
coyoterunstar Messages postés 14 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 19 octobre 2004
19 oct. 2004 à 02:49
Z'oubliais de vous dire qu'il faut inclure pour que ca fonctionne l'inpout outpout :

#include

tcho
KoYoTe
0
Rolapin Messages postés 5 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 14 avril 2005
22 mars 2005 à 18:01
Bonjour, une question sur le même thème :

- je dois créer des répertoires (vérifier qu'ils existent)

- déplacer des fichiers



Le tout sous C...



A priori, il faut faire ça par des appels systèmes. Quelqu'un a une autre idée.



Thomas
0
Rejoignez-nous