我如何使用FS自动创build一个文件夹?

我试图用代码来读取一个数组,并使用名称作为参数之一,如果该名称不存在创build文件夹。 我一直在用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' 

在下面进行testing

 '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 ,recursionmkdir,像mkdir -p

 var mkdirp = require('mkdirp'); mkdirp('/tmp/foo/bar/baz', function (err) { if (err) console.error(err) else console.log('pow!') }); 

NVM,find了一个解决scheme。 我所要做的就是更好地指定位置。

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