*.jpg Dateinamen auswählen



  • Hallo,
    also ich hab ein probelm. hier unten seht ihr einen programmteil mit dem ich dateinamen auslesen kann un in einen vector speichern kann.
    jetzt will ich aber nur die dateien mit *.jpg auswählen. wie mach ich das...

    ich habe volgendes versucht:
    original: fHandle=FindFirstFile(m_laufwerk + ":\\DCIM\\100OLYMP\*",&wfd);
    mein versuch fHandle=FindFirstFile(m_laufwerk + ":\\DCIM\\100OLYMP\*.jpg",&wfd);
    aber dann wählt er garkeine datei aus!!

    vector<string> vDateinamen;
        HANDLE fHandle;
        WIN32_FIND_DATA wfd;
        fHandle=FindFirstFile(m_laufwerk + ":\\DCIM\\100OLYMP\\*",&wfd);
        FindNextFile(fHandle,&wfd);
        while (FindNextFile(fHandle,&wfd))
        {
            if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
            {}
            else
            {
                vDateinamen.push_back(wfd.cFileName);
            }
        }
        FindClose(fHandle);
    


  • Falsches Forum! Ab nach WinAPI!



  • Ich glaube die Find-Methoden der winapi nehmen keine Wildcards.

    Mach halt if(datei_is_jpg) pushback();



  • Zitat aus der MSDN-Library (FindFirstFile:

    lpFileName
    [in] Pointer to a null-terminated string that specifies a valid directory or path and file name, which can contain wildcard characters (* and ?). If the string ends with a wildcard, a period, or a directory name, the user must have access to the root and all subdirectories on the path.



  • hm... Ja ok!
    Ich hab jetzt nochmal mit *.jpg getestet. Aber da passieren so seltsame Sachen die ich mir nicht erklären kann. Wenn ich nach * oder . suchen lasse findet er alle Dateien, ganz normal. Aber wenn ich nach *.jpg suchen lasse, dann findet er die ersten beiden jpg Dateien in diesem Ordner nicht. Aber alle anderen stehen in Vector.
    Gibt es dafür eine erklärung?

    ThX



  • @Weiß ich immernoch net

    Der findet die schon!!! 😉
    Aber Du darftst die nicht verwerfen! 😕

    Du machst vor der ersten Auswertung 2x FindNext - Auswertung ab 3. Eintrag! 😃



  • ja, ich hab es vor ca. 3 min selber bemerkt.
    ich hab das "FindNextFile(fHandle,&wfd);" weg genommen. und aus der while schleife eine do-while gemacht.
    Ich finde es nur sehr merkwürdig das es bei . nicht so ist... 😕



  • da ist es auch so! Er verwirft die Verzeichnisse '.' und '..'


Anmelden zum Antworten