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=pfad

    Code-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


Anmelden zum Antworten