Ordnerliste erstellen

Nebuchadnezar

Erfahrenes Mitglied
falls jemand schon sowas gefragt hat sry habs über suchen ned gfunden ...

also ich habe folgendes Problem:

Ich möchte jetzt zb vom Laufwerk c: eine liste von ordnern erstellen ohne Dateien - sollen aber alle Ordner sein(auch versteckte). Ich möchte das ganze irgendwie mit findfirst und findnext lösen ..hier ein Beispielcode:

#include <stdio.h>
#include <conio.h>
#include <dir.h>
#include <dos.h>
#include <dirent.h>
#include <iostream.h>

void main() {

DIR *dir;
struct ffblk ffblk;
int x;
chdir("c:\\");
x = findfirst("*.",&ffblk,FA_DIREC);
while(!x) {
cout << ffblk.ff_name <<endl;
x = findnext(&ffblk);
}
getch();
}

ich glaub das mit FA_DIREC passt so ich hab nur das problem mit den Suchkriterien(erster Parameter von findfirst() wenn ich zb *.* angeb bekomm ich trotz des Attributs FA_DIREC auch alle dateien. Wenn ich als ersten parameter "*."verwende bekomm ich zwar nur die Ordner aber ein Ordner wird nicht aufgelistet(aufgrund der Tatsache dass der Ordner eine Dateiendung hat *lol* - heisst msdownld.tmp) den bekomm ich nicht angezeigt. Gibt es eine möglichkeit die Kriterien für Ordner zu ignorieren?

Hinweis für die Attribute:

FA_RDONLY Schreibgeschützte Datei
FA_HIDDEN Verborgene Datei
FA_SYSTEM Systemdatei
FA_LABEL Datenträgername
FA_DIREC Verzeichnis
FA_ARCH Archiv-Bit
 
Du hast Dich nicht schlecht ausgedrückt. Mein Problem war, dass Du mit findfirst usw. arbeiten willst. Da kann ich Dir nicht weiterhelfen. Lösungen, die ohne das auskommen, könnte ich *vielleicht* anbieten (muss ich nochmal im Nähkästchen nachschauen). Interesse?
 
bitte schossen sie lies ;)
es war eigentlich deswegen weil readdir glaub i ned mit jedem compiler geht ..kann sein dass es nur mitm bcb geht oder is readdir standardmäßig bei c++ dabei..wenn ja dann steh ich damit an dass ich nicht weis wie ich suchkriterien angebe
..wie auch immer schau mal im "Nähkästchen" nach
 
So, ich bin in einem ziemlich alten Projekt fündig geworden und tu Dir mal den Schnipsel:

Code:
  HANDLE              hFind;
  WIN32_FIND_DATA     wData;
  char                zPath[MAX_PATH];

  hFind = FindFirstFile( zPath, &wData );
  do
  {
    if ( hFind != INVALID_HANDLE_VALUE )
    {
      if ( wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
      {
        //- Hurra, ein Directory!

        //- was tun damit, eventuell rekursiv weitersuchen
      }
    }
  }
  while ( hFind != INVALID_HANDLE_VALUE );
  FindClose( hFind );

Hilft Dir das weiter?
 
ich probiers mal aus
___________
kenn mich mit handle und dem quargel ned so aus ..was mach ich damit?
__________
FindFirstFile ist nicht dokumentiert ... bin im moment überfragt :(
 
Zuletzt bearbeitet:
daweil bcb nur da ich nicht so viel zeit zum proggen hab und das anfangs von der schule gelernt habe wirst du dir denken können dass ich mit begriffen wie windows-api nicht so viel anfang mfc kann ich grad noch visual studio zuordnen aber das wars auch scho mit meinen kenntnisssen :-(
 
Zurück