JPG`s filtern
-
Hallo,
habe ein Problem.Ich würde gerne meine Verzeichnise mit einer Schleife durchforsten und mir jede JPG anzeigen lassen.So siehts aus://Nach JPG`s scannen HANDLE fHandle; WIN32_FIND_DATA wfd; fHandle=FindFirstFile("C:\\*",&wfd); do { // Eintrag nur behandeln, wenn es nicht . oder .. ist (werden nur bei Unterverzeichnissen mit zurückgeliefert) // hier könnte man z.B. auch mit lstrcmp auf . und .. vergleichen, was allerdings nicht ganz so effizient ist if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) { if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { MessageBox(0,wfd.cFileName,"Folgendes Verzeichnis wurde gefunden:",0); // Datei ist keine, sondern ein Verzeichnis... // Hier könnte man dasselbe nochmal machen, um auch die // Unterverzeichnisse zu scannen ;-) } else { string Name = wfd.cFileName; if(Name.find(".jpg")) { MessageBox(0,wfd.cFileName ,"Folgende Datei gefunden:",0); } } } } while (FindNextFile(fHandle,&wfd)); FindClose(fHandle); return 0;aber irgendwie zeiigt er mich auch die ganzen anderen an.was mache ich falsch??
-
WIN32_FIND_DATA wfd; HANDLE hFileFind = FindFirstFile(TEXT("C:\\*.jpg"), &wfd); do { if (!((wfd.cFileName[0] == '.') && ((wfd.cFileName[1] == '.' && wfd.cFileName[2] == 0) || wfd.cFileName[1] == 0))) { MessageBox(0, wfd.cFileName, (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ? TEXT("Folgendes Verzeichnis wurde gefunden:") : TEXT("Folgendes Bild (jpg) wurde gefunden:")), MB_OK | MB_ICONINFORMATION); } } while (FindNextFile(hFileFind, &wfd)); FindClose(hFileFind);
-
//if(Name.find(".jpg")) // falsch if(Name.find(".jpg") != std::npos) // richtigOder noch besser:
fHandle=FindFirstFile("C:\\*.jpg",&wfd);
-
jo,habs gesehen mit dem crossposting;-) aber danke nochmal.es funktioniert jetzt wunderbar;-)
-
hustbaer schrieb:
//if(Name.find(".jpg")) // falsch if(Name.find(".jpg") != std::npos) // richtigNö...

//if(Name.find(".jpg")) // falsch //if(Name.find(".jpg") != std::npos) // falsch if(Name.find(".jpg") != std::string::npos) // richtig