File Attributes



  • Ich habe ein kleines Problem. Ich habe ein Programm geschrieben, dass mir alle Ordner ausliest die in dem selben Verzeichnis sind. An sich hat alles funktioniert. Dann habe ich ein Image gemacht. Das Image habe ich mit Daemon Tools eingebunden. Als ich dann das Programm gestartet habe hat er mir die Ordner nicht mehr aufgelistet. Dann habe ich ein bißchen gesucht und den Fehler auch gefunden. Jetz hoffe ich das mir einer von euch sagen kann warum das so ist. Hier mal mein Code.

    handle = FindFirstFile(szProgramPath, &data);
    if(handle != INVALID_HANDLE_VALUE )
    {	
    do
    {
         if ( data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
         { 
             if( !strcmp(data.cFileName, "." || !strcmp(data.cFileName, "..") )
                 continue;
             SendDlgItemMessage(ghDlg, IDC_LIST_D, LB_ADDSTRING, 0, (LPARAM)data.cFileName);
    
         }
    }
    while(FindNextFile(handle, &data) != 0);
    }
    

    Das Problem ist

    if ( data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
    

    er erkennt die Ordner einfach nich als Ordner. Hat das manchmal was mit den Standards zu tun wie so ein Image/CD/DVD erstellt wird zu tun?

    Mfg



  • Natürlich ist dies das Problem... du solltest vielleicht anstelle von "==" eingach "&" verwenden...

    if ( data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
    


  • warum sollte ich es so machen? solange ich es nihct auf cd brenne funktioniert es auch mit == aber ich werde es mal probieren. danke



  • donzero schrieb:

    warum sollte ich es so machen?

    weil so'n verzeichnis auch noch andere attribute haben kann...



  • Vielen dank! Hat geklappt. Dann könnt ihr hier zumachen 😉


Anmelden zum Antworten