在每个事件之后创建目录
Creating directory after each event
我试图在每个按钮单击事件之后创建一个目录。这只工作到10目录
5612cfea107f9e0f356b3dee_1 5612cfea107f9e0f356b3dee_2 5612cfea107f9e0f356b3dee_3 5612cfea107f9e0f356b3dee_n
然后我得到这个错误:
Error: EEXIST: file already exists, mkdir 'user/public/uploadGallery/5612cfea107f9e0f356b3dee_10'
app.post('/createDirectories', function(req, res) {
var id = '5612cfea107f9e0f356b3dee';
var pathDirectory = __dirname + '/public/uploadGallery/' + id;
fs.readdir(__dirname + '/public/uploadGallery/', function (err, files) {
var countVal = files.filter(junk.not).length;
var fileVal = files.filter(junk.not);
if(countVal == '0'){
fs.mkdirSync(pathDirectory + '_' + 1);
console.log("Directory created: " + pathDirectory + '_' + 1);
}else{
var lastElem = fileVal[fileVal.length-1];
var lastElemSplitValue = lastElem.split("_")[1];
var valInt = parseInt(lastElemSplitValue, 10) +1;
fs.mkdirSync(pathDirectory + '_' + valInt);
}
});
});
我能做些什么来解决这个问题?我想创建n个目录。
谢谢你的帮助。machu
问题是排序
你会有目录
- _1
- _2
- _9
加上第10个,按照字母或词汇的顺序,您将获得
- _1
- _10
- _2
- _9
所以,最后一个文件夹是_9
。。。9+1=10。。。已经存在!
您可以将代码更改为
} else {
var valInt = Math.max.apply(null, fileVal.map(function(entry) {
return parseInt(entry.split("_").pop(), 10);
})) + 1;
fs.mkdirSync(pathDirectory + '_' + valInt);
}
这将Math.max应用于将fileVal条目映射到由"_"分割的每个fileVal条目的最后一部分的parseInt的结果
相关文章:
- 删除在加载dom之后创建的动态元素
- 在window.onload之前/之后创建对象之间的区别
- 使用Js,jQuery在HTML中创建目录
- 是否有跨浏览器的解决方案可以在客户端上创建目录
- 如何使用 phonegap 文件 API 在该目录中创建目录和文件
- 有没有办法在角度UI选择的下拉列表中的第n项之后创建分隔符
- Jquery 不适用于在 document.ready 之后创建的元素
- 在某些数据之后创建事件对象
- localtime.js无法处理ajax之后创建的元素
- 在每个事件之后创建目录
- Javascript:嵌套循环以在VMware vCenter中创建目录树
- 我想在“批准”之后创建一个采购订单.按钮在销售订单上单击
- 用JS创建目录
- 用Cordova FileWriter创建目录
- 如何使用fs.mkdir在node js中创建目录
- 对applybindings之后创建的元素应用click绑定
- 如果不存在,请创建目录
- Node.js sftp putfile未创建目录
- 使用 string.prototype 在每个第 8 个逗号之后创建一个新行
- 节点文件系统 在发布路由上创建目录和文件