COPIE DE FICHIER SANS INDIQUER LE CHEMIN COMPLET

cs_Batman60 Messages postés 71 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 21 octobre 2007 - 18 févr. 2006 à 12:32
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 févr. 2006 à 13:07
Bonjour
je voudrais copier et renommer un fichier vers un dossier sans indiquer le chemin complet pour pouvoir placer le dit dossier n'importe où sur le disque dur
voici une partie de mon code:

OPENFILENAME ofn;
CHAR szFile[MAX_PATH]={0};


ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hDlg;
ofn.lpstrFile = szFile;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrFilter =
"Fichier source JPEG\0*.jpg\0Fichier source BITMAP\0*.bmp\0";
ofn.nFilterIndex = 1;
ofn.Flags =
OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
if (GetOpenFileName(&ofn)==TRUE)
{

CopyFile(szFile,"D://DOSSIER//SOUSDOSSIER//photo.jpg",1);
}

ce code là fonctionne mais je ne peux pas placer "SOUSDOSSIER" n'importe où sur le disque dur
merci d'avance

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 févr. 2006 à 13:07
Une bonne habitude est de ne jamais comparer à TRUE ou quelque autre valeur mais si != 0 seulement:
if(GetOpenFileName(&ofn))...
Faire gaffe aussi que GetOpenFileName sans flag OFN_NOCHANGEDIR change ta currentDirectory.

Faudra dans tous les cas que les params de CopyFile contiennent des chemins complets sinon l'opération sera faite dans la currentDirectory du prog.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous