Bonjour,
Quelle est la fonction qui permet de crée un dossier qui doit contenir différent fichier qui sont crée ultérieurement?
Je n'ai rien trouvé pour l'instant, si une âme charitable veut bien éclairer ma lanterne..
merci![]()
Bonjour,
Quelle est la fonction qui permet de crée un dossier qui doit contenir différent fichier qui sont crée ultérieurement?
Je n'ai rien trouvé pour l'instant, si une âme charitable veut bien éclairer ma lanterne..
merci![]()
Pour créer un repertoire, CreateDirectory
merci pour ton aide, par contre, j'ai regarder dans les tuto pour voir comment on test si un dossier existe mais la fonction qui est donné (opendir()) n'est pas reconnu en c++, je crois que c'est du PHP. Comment je peut faire alors pour tester si mon dossier existe?
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (GetFileAttributes(path) & FILE_ATTRIBUTE_DIRECTORY)
voila ce que j'ai fais:
mais le compilateur ne rentre jamais dans la boucle condition, que le dossier existe ou pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (!(GetFileAttributes(chemin) & FILE_ATTRIBUTE_DIRECTORY)) { CreateDirectory(chemin,NULL); }
j'ai essayé plusieurs solutions mais rien n'y fais, et même avec l'aide je ne comprend pas comment utiliser cette fontion de test!
Pourrais-tu me faire une brève explication de ce que je doit faire?
merci beaucoup.![]()
Que vaut "chemin" ?Envoyé par Rafoo
GetFileAttributes(chemin) & FILE_ATTRIBUTE_DIRECTORY) teste le chemin et si c'est un répertoire, il rentre dans la condition.
Donc, ton programme est bon. Si le répertoire n'existe pas, alors je le créé.
Par contre, il doit forcément rentrer dedans, si le répertoire n'existe pas. C'est pour ca qu'il faudrait connaitre la valeur de chemin. (n'as-tu pas oublier de doubler les \)
ma variable chemin vaut :
lot détient le nom du répertoir à crée s'il n'existe pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2chemin ="C:\\Documents and Settings\\rdigiusto.VARIOPTIC\\Bureau\\test\\"+lot;
Sans le '!' il ne rentre jamais dans la condition et avec le '!' il y rentre a chaque fois!!![]()
moi pas comprendre quoi pas marcher...?!?
chemin est un char * ? string ? CString ?
si tu rentres dans la boucle en enlevant le ! c'est que le répertoire existe
tu as essayé de tracer en debug ?
ma variable chemin est un CString.
Et j'ai en fait tester mon programme dans les deux cas suivant:
- Avec le dossier existant
- Sans le dossier.
mais sans le '!', en traçant avec le debugger, le compilateur ne rentre pas dans la boucle.
avec le '!', le compilateur rentre à chaque fois dans la boucle, que le dossier existe ou pas...
bizzard, non?
je te propose de faire un test simple
en admettant que ton windows soit installé sur c:\winnt
le but étant de voir que winnt existe, et pas winnt2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 if (GetFileAttributes("c:\\winnt") & FILE_ATTRIBUTE_DIRECTORY) { MessageBox(NULL, "C:\\winnt existe", "", 0); } else { MessageBox(NULL, "C:\\winnt n'existe pas", "", 0); } if (GetFileAttributes("c:\\winnt2") & FILE_ATTRIBUTE_DIRECTORY) { MessageBox(NULL, "C:\\winnt2 existe", "", 0); } else { MessageBox(NULL, "C:\\winnt2 n'existe pas", "", 0); }
J'ai essayé ton test et j'ai les deux message... winnt existe et winnt2 existe!!
Je ne comprend pas pourquoi, c'est trop bizzard......
je t'avouerai que je sais pas trop là.
Je te propose alors d'utiliser une autre solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 WIN32_FILE_ATTRIBUTE_DATA attr; if (GetFileAttributesEx("c:\\winnt", GetFileExInfoStandard, &attr)) if (attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) MessageBox(NULL, "C:\\winnt existe", "", 0); else MessageBox(NULL, "C:\\winnt n'est pas un repertoire", "", 0); else MessageBox(NULL, "C:\\winnt n'existe pas", "", 0);
Alors maintenant, il me dit que 'winnt n'existe pas'!!!
c'est la 4ème dimension!!!![]()
euh ... il existe bien ?![]()
que renvoit GetLastError() ?
je viens de modifier ton code pour l'adapter au mien, et cette nouvelle version marche très bien... Alors pourquoi il n'a pas trouvé winnt je ne sais pas (j'ai fais une recherche sur le c: et j'ai pas trouvé de winnt!!!), mais l'important c'est que ça marche dans mon code...
merci beaucoup pour ton aide.
Il n'a pas trouvé C:\WinNT car chez toi, Windows n'est pas installé dans ce dossier... (Il est probablement installé dans C:\Windows)
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
hé voui!!!
donc tout va bien dans le meilleur des mondes!!!
merci à toutes les personnes qui trouve du temps pour répondre aux questions aussi farfelu que les miennes.
et merci nico-pyright(c), tu m'a tiré une grosse épine du pied.
Partager