我正在尝试使用代码来读取数组,并使用名称作为参数之一创建文件夹(如果该名称不存在)。我一直在用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'
答案 0 :(得分:10)
在下方进行测试
mkdir -p
<强>溶液强>
使用mkdirp,递归mkdir,如var mkdirp = require('mkdirp');
mkdirp('/tmp/foo/bar/baz', function (err) {
if (err) console.error(err)
else console.log('pow!')
});
sim00
sim01
sim02
答案 1 :(得分:2)
NVM,找到了解决方案。我所要做的就是更好地指定位置。
if (!fs.existsSync('/home/user/recorder/audio/'+obj.key)){
fs.mkdirSync('/home/user/recorder/audio/'+obj.key);
console.log ('Folder '+obj.key+' has been created');
答案 2 :(得分:0)
仅一种解决方案
!fs.existsSync(`./assets/`) && fs.mkdirSync(`./assets/`, { recursive: true })