Besoin d'aide au sujet de la fonction GetCurrentDirectory

Résolu
arsenecouette Messages postés 8 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 27 décembre 2005 - 21 déc. 2005 à 18:58
arsenecouette Messages postés 8 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 27 décembre 2005 - 22 déc. 2005 à 10:52
Bonjour,

Je viens de voir que la fonction GetCurrentDirctory() permettait de recupèrer le chemin du repertoire courant.
Neanmoins apres avoir regarder sur la doc msdn je n'arrive toujours pas à faire marcher cette fonction.

Ainsi pourriez vous m'aider svp sur les librairies à importer et comment utiliser celle-ci .

Merci d'avance

10 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 déc. 2005 à 10:41
#include <windows.h>

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
21 déc. 2005 à 19:06
Rien de plus simple:
TCHAR szPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH, szPath);
0
arsenecouette Messages postés 8 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 27 décembre 2005
21 déc. 2005 à 19:18
Merci vecchio pour ta reponse mais je vois pas comment utiliser cela. Je suis novice en c++ donc faut que j'apprenne.

Je vais detailler un peu plus mon probleme.

void MailDir::SupprimerTMail()
{
for(int i=0;i<ReturnIndice();i++)
{
string temp= "M:\\divers cour à trier\\C++\\ProjetInfo\\ServeurSMTP\\ServeurSMTP_15_12_05\\Toto\";
ostringstream number ;
number << i ;
temp += number.str() ;
temp += ".txt" ;
remove(temp.c_str());
}
ReinitialisationIndiceMail();
}

voila mon code de l'une de mes fonctions et j'aimerais remplacer le M:\\divers cour à trie..... par le retour de la fonction GetCurrentDirectory . Comme ca mon application marche sur n'importe quelle machine et dans n'importe quel chemin.

Merci d'avance.
0
gamemonde Messages postés 336 Date d'inscription samedi 9 août 2003 Statut Membre Dernière intervention 9 juillet 2011 2
21 déc. 2005 à 21:41
void MailDir::SupprimerTMail()
{
for(int i=0;i<ReturnIndice();i++)
{
string temps;
GetCurrentDirectory(MAX_PATH, temps);
ostringstream number ;
number << i ;
temps += number.str() ;
temps += ".txt" ;
remove(temps.c_str());
}
ReinitialisationIndiceMail();
}
voila tu remplace temps par une chaine
0

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

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
21 déc. 2005 à 21:45
Non, surtout pas ca! GetCurrentDirectory ne connait pas string

void MailDir::SupprimerTMail()
{
for(int i=0;i<ReturnIndice();i++)
{
TCHAR szPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH, szPath);
ostringstream number ;
number << i ;
temp += number.str() ;
temp += ".txt" ;
remove(szPath);
}
ReinitialisationIndiceMail();
}

Mais ce code ne marchera pas sur n'importe quelle machine (que sous Windows).
Que doit faire l'appel à remove? Regarde si la fonction PathRelativePathTo ne pourrait pas t'aider
0
gamemonde Messages postés 336 Date d'inscription samedi 9 août 2003 Statut Membre Dernière intervention 9 juillet 2011 2
21 déc. 2005 à 21:49
oui mais la ton chose marche toujours pas car il prend les fichiers de ce repectoire et ajoute le chiffre + ,.txt
alors il n``a qu'a faire une conversion en string c'est pas illegale ou de faire strcopy si ma memoire est bonne ou encore un wsprintf s'il veux utiliser des chars.
il me semblais aussi qu'il ne prenais pas les strings. mais j'ai pas verifiers.
tres peu de chose prennent des strings.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
21 déc. 2005 à 21:56
Ah oui, je me suis trompé

void MailDir::SupprimerTMail()
{
for(int i=0;i<ReturnIndice();i++)
{
TCHAR szPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH, szPath);
string temp = szPath;
ostringstream number;
number << i ;
temp += number.str();
temp += ".txt" ;
remove(temp.c_str());
}
ReinitialisationIndiceMail();
}

J'avais pas bien regardé la fonction. Oublier donc l'histoire de PathRelativePathTo
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 déc. 2005 à 23:58
Faudrait aussi être certain que tu trouveras ce que tu cherches dans GetCurrentDirectory.
Ne serait pas plutôt le dossier de ton exe que tu voudrais ? Si oui alors GetModuleFilename().
Ta currDir peut avoir été modifiée avant le lancement de ton prog par le raccourci lanceur comme par tant d'autres facteurs.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
arsenecouette Messages postés 8 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 27 décembre 2005
22 déc. 2005 à 10:25
Je suis vraiment desolé mais rien de ce que vous m'avez donné ne marche.

Je vais alors essayé d'etre encore plus clair.
Je programme sous Microsoft Visual C++ 6.0 avec window XP comme OS.
Et en fait vecchio56, quand tu me donnes :
TCHAR szPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH, szPath);
string temp = szPath;

le compilateur me dis

'TCHAR' : undeclared identifier
syntax error : missing ';' before identifier 'szPath'
'szPath' : undeclared identifier
'MAX_PATH' : undeclared identifier
subscript requires array or pointer type
'GetCurrentDirectory' : undeclared identifier
'initializing' : cannot convert from 'int' to 'class std::basic_string<char,struct std::char_traits<char>,c

ainsi ne viendrait-ce pas d'une librairie que j'ai pas inclut?????????
La je sais plus koi faire.

Et pour repondre à la question de BruNews, en fait je suis en train de faire un mini projet info ou je dois programmer en C++ un serveur SMTP (simplifié bien sure).
Donc celui-ci devant etre portable il ne serait pas judicieux que je sauvegarde mes mails recut ds C:// ...../serveurSMTP//.....
Mais ce serait mieux de recuperer le dossier ou se trouve mes fichiers sources(donc le dossier ou je compile) puis juste de fournir un nom de dossier qui se trouverais aussi ou se trouve mes sources.

J'espere avoir été clair sinon je m'en excuse.

Merci d'avance de vos réponses.
0
arsenecouette Messages postés 8 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 27 décembre 2005
22 déc. 2005 à 10:52
merci beaucoup ca marche enfin.
0
Rejoignez-nous