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 :wink:
Version imprimable
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 :wink:
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: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:
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. :oops:
Que vaut "chemin" ?Citation:
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:
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 winnt2Code:
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 solutionCode:
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!!! :lol:
euh ... il existe bien ? :lol:
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)
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.