errox Geschrieben 28. Dezember 2008 Geschrieben 28. Dezember 2008 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 Zitieren
Guybrush Threepwood Geschrieben 28. Dezember 2008 Geschrieben 28. Dezember 2008 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... Zitieren
errox Geschrieben 28. Dezember 2008 Autor Geschrieben 28. Dezember 2008 Das hört sich sehr Kompliziert an, vorallem nachdem ich den MSDN eintrag von FindFirstFile gelesen hab. Gibt es garkeine alternative? Zitieren
Klotzkopp Geschrieben 29. Dezember 2008 Geschrieben 29. Dezember 2008 Es gibt auch noch Boost Filesystem. Zitieren
errox Geschrieben 29. Dezember 2008 Autor Geschrieben 29. Dezember 2008 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 Zitieren
Klotzkopp Geschrieben 29. Dezember 2008 Geschrieben 29. Dezember 2008 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". Zitieren
errox Geschrieben 29. Dezember 2008 Autor Geschrieben 29. Dezember 2008 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. Zitieren
flashpixx Geschrieben 29. Dezember 2008 Geschrieben 29. Dezember 2008 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 Zitieren
errox Geschrieben 29. Dezember 2008 Autor Geschrieben 29. Dezember 2008 Das hab ich doch getan Zitieren
Klotzkopp Geschrieben 29. Dezember 2008 Geschrieben 29. Dezember 2008 Sie existiert aberHat die existierende Datei wirklich genau diesen Namen? Zitieren
flashpixx Geschrieben 29. Dezember 2008 Geschrieben 29. Dezember 2008 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 Zitieren
errox Geschrieben 29. Dezember 2008 Autor Geschrieben 29. Dezember 2008 (bearbeitet) 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 2008 von errox Zitieren
Klotzkopp Geschrieben 29. Dezember 2008 Geschrieben 29. Dezember 2008 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. Zitieren
errox Geschrieben 30. Dezember 2008 Autor Geschrieben 30. Dezember 2008 Und wie geht das? :S Zitieren
Klotzkopp Geschrieben 30. Dezember 2008 Geschrieben 30. Dezember 2008 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 Zitieren
errox Geschrieben 31. Dezember 2008 Autor Geschrieben 31. Dezember 2008 nagut. Ich werde mich mit FindFirstFile() auseinandersetzen. trozdem vielen dank!! Wünsch euch alle einen guten rutsch Liebe Grüße errox Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.