Wie verwende ich die FS einen Ordner automatisch?

Ich versuche, code zu schreiben, der ein array und erstellen Sie Ordner, mit dem Namen wie ein Parameter, wenn dieser name nicht vorhanden ist. Ich habe mit fs zu machen, eine einfache Schleife, wie so

var streamsRepository = streamsRepositoryFactory(__dirname + '/streams.json');
var obj = streamsRepository.streams[i];
var i;

for(i = 0; i < streamsRepository.streams.length; i++) {
    var obj = streamsRepository.streams[i];

console.log('Folder '+obj.key+' is Created');


    if (!fs.existsSync('../audio/'+obj.key)){
        fs.mkdirSync('../audio/'+obj.key);

    }
}

Aber jedes mal, wenn ich erhalte die Nachricht.

Folder AAAA is Created
fs.js:796
  return binding.mkdir(pathModule._makeLong(path),
                 ^
Error: ENOENT: no such file or directory, mkdir '../audio/AAAA'
  • Sollte nicht obj und ich werden als Globale variable deklariert an der Spitze statt in der for-Schleife.
  • Wie haben Sie überprüft, für Fehler? Hast du ein try/catch? Versuchen Sie try { fs.mkdirSync(path); } catch(e) { if ( e.code != 'EEXIST' ) throw e; }
  • Okay, ausprobiert. Seine jetzt erzählen Sie mir fs.js:796 Rückgabe verbindlich.mkdir(pathModule._makeLong(Pfad), ^ Error: ENOENT: no such file or directory, mkdir '../audio/
  • Scheint, wie es gibt keine /audio Verzeichnis, in dem mkdir könnte alles erstellen.
  • Sie können 'fs-extra' Modul dafür gibt es APIs, um auch Ihre Bedürfnisse zu erfüllen.
InformationsquelleAutor David | 2015-07-22
Schreibe einen Kommentar