Lister une extension spécifique d'un dossier
Bonjour,
pour lister l'intégralité des fichiers d'un dossier, je vais ça (et ça marche):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
BOOL didThisFail = FALSE;
WIN32_FIND_DATA FindFileData;
HANDLE hfind=NULL;
FILETIME dateElement;
wstring ext=toWstring("\\*.*");
wstring chemin=source+ext;
cout<<"la source est"<<endl;
wcout<<source<<endl;
cout<<"le chemin est"<<endl;
wcout<<chemin<<endl;
hfind = FindFirstFile(chemin.c_str(), &FindFileData);
while(FindNextFile(hfind,&FindFileData)!=0)
{
wstring nomElement(FindFileData.cFileName);
wcout<<nomElement<<endl;
dateElement=FindFileData.ftLastWriteTime;
if (nomElement!=toWstring(".") && nomElement!=toWstring("..")){
wstring newDossierToSave=source+toWstring("\\")+nomElement;
wstring newDestinationFile=destination+toWstring("\\")+nomElement;
if((FindFileData.dwFileAttributes) & (FILE_ATTRIBUTE_DIRECTORY)){//si c'est un dossier
cout<<"newDestinationFile= "<<endl;
wcout<<newDestinationFile<<endl;
if (verifierExistence(toString(newDestinationFile))==false){
if (CreateDirectory(newDestinationFile.c_str(), NULL)){
cout<<"creation du dossier ..."<<endl;}
else {cout<<"erreur dans la creation du dossier, le contenu de celui-ci ne sera pas sauvegardé"<<endl;}
}
sauvegardeDossier(newDossierToSave,newDestinationFile,ext);
}
else{
if (verifierExistence(toString(newDestinationFile))==false){
if (CopyFile(newDossierToSave.c_str(),newDestinationFile.c_str(), BOOL(false))){
cout<<"copie reussie"<<endl;}
else {cout<<"copie loupee"<<endl;}
}
else if(plusRecent(dateElement,newDossierToSave)){
if (CopyFile(newDossierToSave.c_str(),newDestinationFile.c_str(), BOOL(false))){
cout<<"copie reussie"<<endl;}
else {cout<<"copie loupee"<<endl;}
}
else {cout<<"le fichier existe et n'est pas plus recent"<<endl;}
}
}
}
FindClose(hfind);
} |
(dans ce cas je fais une copie, mais bon, l'action de lister est la même).
Quand je veux lister QUE les .txt, je remplace la ligne ne rouge par ça non ? :
Code:
wstring ext=toWstring("\\*.txt");
et là, surprise, ça ne marche pas 8O
Avez vous une idée de pourquoi ?
merci d'avance