mit c++ alle Dateien in einem Ordner auslesen und mit cout ausgeben
-
Hallo !
Wie kann ich denn aus einem Ordner alle Dateien auslesen und diese Datei-Namen mit cout ausgeben lassen ?
Heinz
-
Das ist kein Standard-C++ Problem bzw. nicht damit zu lösen.
Im WinAPI FAQ Forum findest du eine Lösung, die aber natürlich nur mit Windows funktioniert.MfG MAV
-
Diese Frage wurde schon des öfteren beantwortet, du brauchst eigentlich nur im WinAPI-Forum suchen.
Z.B.:
http://www.c-plusplus.net/forum/viewtopic.php?t=16722&highlight=pfadCode-Hacker
-
Hallo !
Das hab ich gemacht - die haben mich wieder hier hin verwiesen.
Aber wenn ich die Dateien aufgelistet habe, und ich die dann bearbeitet habe und will die speichern, speichert mir c++ das nicht wieder da wo es her aufgerufen worden ist, sondern da, wo ich das c++ Programm gestartet habe.
Wie kann ich das denn machen
Mis2com schrieb:
Das ist kein Standard-C++ Problem bzw. nicht damit zu lösen.
Im WinAPI FAQ Forum findest du eine Lösung, die aber natürlich nur mit Windows funktioniert.MfG MAV
-
Und nun bitte so das es andere auch verstehen
-
Hallo !
Na ganz einfach - Ich gebe den Pfad zum Ordner an, welcher gescannt werden soll.
HANDLE fHandle;
WIN32_FIND_DATA wfd;fHandle=FindFirstFile("g:\\xpress_4_0\*.*",&wfd);
FindNextFile(fHandle,&wfd);
while (FindNextFile(fHandle,&wfd))
{
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// Datei ist keine, sondern ein Verzeichnis...
// Hier könnte man dasselbe nochmal machen, um auch die
// Unterverzeichnisse zu scannen
}
else
{Hier an dieser Stelle lass ich mir von c++ die Dateien anzeigen, die in diesem Ordner sind.
Hier öffne und bearbeite ich die Dateien.
Wenn ich dann aber wieder speichern möchte, speichert mir c++ nicht in dem Pfad wie oben "g:\\xpress_4_0\" sondern in einem anderen Ordner - nämlich in den, von wo ich c++ gestartet habe ---> "F:\Programme\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE"
Ich möchte aber die geänderten Dateien genau da wieder speichern, wo ich diese her aufgerufen habe.
Alles klar ??
Heinz
Knuddlbaer schrieb:
Und nun bitte so das es andere auch verstehen
-
heinz1 schrieb:
Hallo !
Na ganz einfach - Ich gebe den Pfad zum Ordner an, welcher gescannt werden soll.
HANDLE fHandle;
WIN32_FIND_DATA wfd;fHandle=FindFirstFile("g:\\xpress_4_0\*.*",&wfd);
FindNextFile(fHandle,&wfd);
while (FindNextFile(fHandle,&wfd))
{
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// Datei ist keine, sondern ein Verzeichnis...
// Hier könnte man dasselbe nochmal machen, um auch die
// Unterverzeichnisse zu scannen
}
else
{Hier an dieser Stelle lass ich mir von c++ die Dateien anzeigen, die in diesem Ordner sind.
Hier öffne und bearbeite ich die Dateien.
Wenn ich dann aber wieder speichern möchte, speichert mir c++ nicht in dem Pfad wie oben "g:\\xpress_4_0\" sondern in einem anderen Ordner - nämlich in den, von wo ich c++ gestartet habe ---> "F:\Programme\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE"
Ich möchte aber die geänderten Dateien genau da wieder speichern, wo ich diese her aufgerufen habe.
Alles klar ??
Heinz
Knuddlbaer schrieb:
Und nun bitte so das es andere auch verstehen
-
Oder du nimmst boost::filesystem von www.boost.org. So wie ich das sehe, ist das das, was du suchst, nur mit ohne WinAPI eben.
-
Dann würd ich sagen Du solltest mal den Pfad beim Speichern angeben. Du kannst über die WinApi auch das aktuelle Verzeichnis ändern.
Details -> WinApi Forum