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 demmkdir
könnte alles erstellen. - Sie können 'fs-extra' Modul dafür gibt es APIs, um auch Ihre Bedürfnisse zu erfüllen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben einen test unter
Lösung
verwenden mkdirp,Rekursiv mkdir, wie
mkdir -p
NVM, eine Lösung gefunden. alle die ich tun musste, war geben Sie die Lage besser.
Nur eine Lösung