Veröffentlicht 28. Dezember 200816 j Hallo. Ich suche ein kleines Script, mit dem ich die Dateien und Ordner meines Ordners einzeln ausgeben kann. In PHP finde ich ein Script mit "opendir()" und "readdir()". Für C++ habe ich folgendes Script gefunden: #include "stdafx.h" #include <dirent.h> #include <iostream> using namespace std; int main() { DIR *verzeichnis; string datei; verzeichnis = opendir("/"); while (datei = readdir(verzeichnis)) { cout << datei << endl; } } Das einzige Problem ist, dass dirent.h laut Visual Studio nicht existiert. Was kann ich tun? Vielen dank im vorraus. Liebe Grüße errox
28. Dezember 200816 j C oder C++ kennen keine Verzeichnisse, das heißt das Lösungen dafür Plattform (und evtl Compiler abhängig sind). Unter Windows verwendet man dafür üblicherweise die WinAPI Funktion FindFirstFile und FindNextFile...
28. Dezember 200816 j Autor Das hört sich sehr Kompliziert an, vorallem nachdem ich den MSDN eintrag von FindFirstFile gelesen hab. Gibt es garkeine alternative?
29. Dezember 200816 j Autor Sieht interessant aus, aber aus irgent einem grund kann meine IDE eine Bosst .lib datei nicht öffnen Error 1 fatal error LNK1104: cannot open file 'libboost_filesystem-vc80-mt-gd-1_37.lib' Kassiersystem Sie existiert aber
29. Dezember 200816 j Dann hast du vermutlich in den Projekteinstellungen das Verzeichnis, in dem die Datei liegt, nicht angegeben. In Visual C++ 2008 wäre das "Linker > General > Additional Library Directories".
29. Dezember 200816 j Autor Ungefähir so? Funktioniert immernoch nicht ich hab doch "nur" den Befehl #include "boost/filesystem.hpp" hinzugefügt. P.S. Ich hab wie in der Boost anleitung auch bei C++ > General > Additional Include Directories den Boost ordner hinzugefügt und bei "Precompiled Headers" Not Using Precompiled Headers gesetzt.
29. Dezember 200816 j Du musst ihm auch ggf mitteilen wo die Boost liegt, sonst wird der Compiler (nicht der Linker) die *.hpp's nicht finden. Zum linken, musst Du dann die kompilierten Libs beim Linker angeben bzw. das Verzeichnis Phil P.S.: Natürlich solltest Du prüfen, ob Du die Boost auch kompiliert hast, also Header + Libs
29. Dezember 200816 j Mich macht der Suffix stutzig "mt-gd", das GD würde ich asl GD Library GD Library ? Wikipedia interpretieren. Könnte es sein, dass die Boost gegen die GD gelinkt ist und man dann die Libs der GD ebenfalls haben muss? Phil
29. Dezember 200816 j Autor Nein, leider nicht. Tut mir leid dass ich euch diese Fehlinformation gegeben habe. Aber ich habe frisch die neuste Boost version ( 1.37.0 ) heruntergeladen und installiert und diese .lib Datei ist dort nicht vorhanden. Wie kann das sein? Gibt es keine Alternative? Weil das ist für meine Anwendung sehr wichtig Ich möchte noch was hinzufügen: Mir ist grade aufgefallen, dass es garkeine .lib Dateien gibt.... Bearbeitet 29. Dezember 200816 j von errox
29. Dezember 200816 j Aber ich habe frisch die neuste Boost version ( 1.37.0 ) heruntergeladen und installiert und diese .lib Datei ist dort nicht vorhanden. Wie kann das sein?Das ist, soweit ich weiß, normal. Es gibt so viele Compiler (und für die einzelnen Compiler noch unterschiedliche Linkereinstellungen), dass Boost kaum Bibliotheken für alles und jeden mitliefern kann. Du musst die Bibliotheken selbst bauen.
30. Dezember 200816 j Siehe hier: Boost Getting Started on Windows Ich halte es übrigens für erheblich einfacher, sich in FindFirstFile/FindNextFile einzuarbeiten. So kompliziert sind die nun auch nicht
31. Dezember 200816 j Autor nagut. Ich werde mich mit FindFirstFile() auseinandersetzen. trozdem vielen dank!! Wünsch euch alle einen guten rutsch Liebe Grüße errox
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.