Javascript 如何使用FS自动创建文件夹?
我正在尝试使用代码读取数组,并创建文件夹,如果该名称不存在,则使用该名称作为参数之一。我一直在用fs做一个简单的循环,就像这样Javascript 如何使用FS自动创建文件夹?,javascript,node.js,directory,fs,Javascript,Node.js,Directory,Fs,我正在尝试使用代码读取数组,并创建文件夹,如果该名称不存在,则使用该名称作为参数之一。我一直在用fs做一个简单的循环,就像这样 var streamsRepository = streamsRepositoryFactory(__dirname + '/streams.json'); var obj = streamsRepository.streams[i]; var i; for(i = 0; i < streamsRepository.streams.length; i++) {
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);
}
}
进行以下测试
'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'
解决方案递归地使用mkdir,如
mkdir-p
var mkdirp = require('mkdirp');
mkdirp('/tmp/foo/bar/baz', function (err) {
if (err) console.error(err)
else console.log('pow!')
});
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');
仅一行解决方案
!fs.existsSync(`./assets/`) && fs.mkdirSync(`./assets/`, { recursive: true })
obj和i不应该在顶部声明为全局变量而不是在for循环中声明。您是如何检查错误的?你安排了试一试吗?试着做
Try{fs.mkdirSync(path);}catch(e){if(e.code!=“EEXIST”)抛出e;}
好的,试一下。现在它告诉我fs.js:796 return binding.mkdir(pathModule.\u makeLong(path),^Error:enoint:没有这样的文件或目录,mkdir'../audio/似乎没有/audio
目录可以在其中创建任何内容。您可以使用'fs extra'模块,它有API来满足您的需要。
!fs.existsSync(`./assets/`) && fs.mkdirSync(`./assets/`, { recursive: true })