Alternative zu dirent.h oder wie kann ich unter Windows Verzeichnisse einlesen?



  • Hallo!

    Ich programmiere zurzeit in C++ einen Packer, der unter Windows, Linux und MacOS X kompilierbar sein soll. Allerdings habe ich noch keinen weg gefunden, wie ich unter allen drei Betriebsystemen wenn ich den Path zu einem Verzeichnis habe, alle Dateien und Unterverzeichnisse einzulesen. Unter Linux (MacOS X noch nicht getestet) kann man dies prima mit "sys/dirent.h" machen. Unter Windows kann ich zwar mit "sys/types.h" und "sys/stat.h" Informationen über das eingegebene Verzeichnis einlesen, aber nicht die Namen der Dateien und Unterverzeichnisse.

    Eigentlich wäre boost hierfür prima geeignet. Aber leider wird dadurch die kompilierte Datei viel zu groß. Die Anwendung sollte kleiner als 100KB bleiben, da ansonsten die selbstextrahiernden Archive zu groß würden.

    Welche gute Alternative gibt es zu "dirent.h"? Ideal wäre natürlich, wenn die Lösung plattformunabhängig wäre (also Windows, Linux und MacOS X). Über eine reine Alternative für Windows würde ich mich natürlich auch freuen. Mit Google habe ich leider noch nichts brauchbares gefunden bzw. beim Quellcode stand nicht unter welcher Lizenz er steht.

    Viele Grüße
    pmw





  • Hallo Chew-Z,

    boost war auch mein erster Gedanke. Warum ich es aber nicht verwenden kann habe ich oben beschrieben.

    Viele Grüße
    pmw



  • Win32/Unix, stammt von HumeSikkins:
    http://fara.cs.uni-potsdam.de/~kaufmann/dirstream/index.html

    Ansonsten Win32:
    MSDN nach FindFirstFile() und FindNextFile() durchsuchen

    MfG SideWinder


Log in to reply