我正在尝试使用代码读取一个数组,并在该名称不存在的情况下使用该名称作为参数之一创建文件夹。我一直在使用 fs 做一个简单的循环,就像这样
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);
}
}
但每次我不断收到消息。
Folder AAAA is Created
fs.js:796
return binding.mkdir(pathModule._makeLong(path),
^
Error: ENOENT: no such file or directory, mkdir '../audio/AAAA'
最佳答案
在下面进行测试
'use strict';
var fs = require('fs');
// fs.mkdirSync('folda'); // success
fs.mkdirSync('/parent-not-exists/folda');
// Failed,if parent folder isn't exists,will throw
// Error: ENOENT, no such file or directory '/parent-not-exists/folda'
解决方案
使用 mkdirp ,递归地mkdir,如mkdir -p
var mkdirp = require('mkdirp');
mkdirp('/tmp/foo/bar/baz', function (err) {
if (err) console.error(err)
else console.log('pow!')
});
关于javascript - FS如何自动制作文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31552451/