亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js在目標文件夾檢索想要命名的文件是否存在,如果存在則重新命名?

js在目標文件夾檢索想要命名的文件是否存在,如果存在則重新命名?

德瑪西亞99 2018-08-14 10:10:47
想要創建一個文件,名字已經備好,在目標文件夾檢索改名字是不是已經被占用,如果占用則給文件重新命名。/** * 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;
    }
}

這點東西還用異步簡直是自我傷害

小腳本其實可以摒棄異步,用微弱的性能下降換取極大的開發效率提升。


查看完整回答
反對 回復 2018-09-26
  • 1 回答
  • 0 關注
  • 1056 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號