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 );
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 );
Comment