Announcement

Collapse
No announcement yet.

Rekursion und Callback Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Rekursion und Callback Problem

    Hi, ich bin momentan in der Ausbildung zum Fachinformatiker und mit den callback Funktionen, das erste mal an meine Grenzen gestoßen. Im Forum habe ich nachgelesen ob es ähnliche Beiträge gibt, da ich aber meinen Fehler einfach nicht finde, weiß ich gar nicht so genau, wonach ich suchen soll.
    Die Aufgabenstellung ist folgende: Ich soll ein Programm schreiben, welches im aktuellen Dateipfad auf Dateien durchsucht und auch alle Unterverzeichnisse. Eine Aufgabe die ich in anderen Programmiersprachen mit einer einfachen rekursiven Funktion abarbeiten konnte. Leider funktioniert es in Javascript einfach nicht so wie ich mir das erhoffe. Ich würde mich sehr über einen Denkanstoß freuen, also keinen code oder so, aber vielleicht sieht jemand beim drüber schauen sofort was das Problem ist und kann einen Tipp geben. Ich muss die Aufgabe mit node und den Modulen fs und process lösen und darf keine fs sync-Funktionen verwenden.
    Wenn ich meinen Code ausführe bekomme ich eine Fehlermeldung die Unterverzeichnisse nicht existieren, tun sie aber.
    Hier der Code:

    const p = require("process");
    const fs = require("fs");

    var path = p.cwd();
    var sum = 0;

    function sizeFromAll( path ){

    var existDir = false;

    var tueErst = fs.readdir( path, ( err, files ) => {

    if( err ){

    throw err;

    }else{

    files.forEach( file => {

    fs.stat(file, (err, fileStats) => {

    if (err) {

    console.log(err);

    } else {

    if( fileStats.isFile() ){

    sum += fileStats.size;
    console.log(file);

    }else{

    existDir = true;
    newPath = path + "\" + file;
    sizeFromAll( newPath );

    }

    }

    });

    });

    console.log( sum );

    }

    });

    }

    sizeFromAll( path, sizeFromAll );
    Zuletzt editiert von luffy19086; 15.02.2021, 21:05.

  • #2
    Problem könnte hier liegen
    newPath = path + "\" + file;

    Enthält file den kompletten Pfad zur Datei?
    Christian

    Comment


    • #3
      Danke dir sehr für den Tipp, habs gelöst bekommen. Hab dann nochmal geschaut was mir process.cwd() genau gibt.
      Hatten zudem dann mit Promise gearbeitet und konnte es dann wie gewohnt abarbeiten als Schleifenkonstruktion.

      Comment

      Working...
      X