想要创建一个文件,名字已经备好,在目标文件夹检索改名字是不是已经被占用,如果占用则给文件重新命名。/** * Created by Administrator on 2016/8/10. */function File(){    var _checkFile = require('check-file-exists');    var _createFile = require('create-file');    return {        check: _checkFile,        create: _createFile    }}var file = new File();var aimdir = '../../../projectNew/';var fileName = 'a_0.txt';var exists = true;var fileEnd = /\d/g.exec(fileName);while(exists){    console.log('exists是 '+ exists +'\n fileEnd是 '+ fileEnd);    file.check(aimdir+fileName, function(err,exist){        if(exist == true){            console.log('exists是 '+ exists +'\n exist是 '+ exist);            fileName = fileName.replace(/\d/g,+fileEnd+1);        }else{            exists = false;            file.create(aimdir+fileName,'',function(err){});        }    });}运行的时候出现死循环,求解。
                    
                    
                1 回答
 
                    
                    
                            摇曳的蔷薇
                            
                                
                            
                        
                        
                                                
                    TA贡献1793条经验 获得超6个赞
原因是:RegExp.exec 返回一个数组
其实你这样替换检查很蹩脚,不如这样:
var fs = require('fs');var aimdir = '../../../projectNew/';var index = 0;while (True) {    if (!fs.lstatSync(var path = `${aimdir}a_${index++}.txt`)).isFile()) {        // create file with `path`
        break;
    }
}这点东西还用异步简直是自我伤害
小脚本其实可以摒弃异步,用微弱的性能下降换取极大的开发效率提升。
添加回答
举报
0/150
	提交
		取消
	