Unterscheidung File oder Directory



  • Hi @ all !
    Bastel grad an einem Programm rum,was eine Art Dateibrowser werden soll.
    Also ein Verzeichniss einlesen und auf dem Bildschirm wieder geben funktioniert soweit. Jetzt wollte ich halt wissen ob es eine Möglichkeit gibt beim Einlesen der Directoryeinträge, schon heraus zu finden ob es sich dabei um ein File oder um ein Directory handelt.

    Hier der

    void Browser::Browser () {
         clrscr();
         DIR dirent *slot_p;
         struct stat inodbf;
         char path[8] = "/meins/";
         dir_p = opendir (path)
         while ((slot_p=readdir (dir_p))!=NULL){
              cout << slot_p->d_name << endl;
         }
         closedir (dir_p);
    }
    

    Ich denke dies läßt sich mit einer IF Bedienung irgendwie lösen.
    MfG Reasar !



  • nimm Boost::Filesystem, damit kannst du das, bist nebenbei noch Platformunabhängig und hast eine schöne C++ API



  • nimm es nicht.



  • für so einen dateibrowser brauch man kein boost::filesystem

    und was unterscheidet wohl einen dateinamen von einem ordnernamen? vielleicht, dass dateinamen eine .xxx endung haben?



  • @otze
    quatsch

    @volkard
    doch



  • Also hab ein wenig gegoogelt. Irgendwie bin ich auf die Funktion FileGetAttr() gekommen. Weiß da einer mehr wie die Funktion funktioniert ???



  • ist borland spezifisch

    FileGetAttr returns the attributes of the file as a string of bits. This value is the same as the Attr field of a TSearchRec struct. Check for individual attributes with code such as the following:

    int Attrs = FileGetAttr("MyFile.sys");
    
    if (Attrs & faHidden)
      FileSetAttr("MyFile.sys", Attrs & !faHidden);
    

    A return value of -1 indicates that an error occurred.


Log in to reply