Node.js 文件夾目錄結(jié)構(gòu)創(chuàng)建實(shí)例代碼

字號(hào):


    下面小編就為大家?guī)硪黄狽ode.js 文件夾目錄結(jié)構(gòu)創(chuàng)建實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。
    第一次接觸NodeJS的文件系統(tǒng)就被它的異步的響應(yīng)給搞暈了,后來發(fā)現(xiàn)NodeJS判斷文件夾是否存在和創(chuàng)建文件夾是還有同步方法的,但是還是想嘗試使用異步的方法去實(shí)現(xiàn)。
    使用的方法:
    fs.exists(path, callback);
    fs.mkdir(path, [mode], callback);
    實(shí)現(xiàn)文件夾目錄結(jié)構(gòu)的創(chuàng)建代碼實(shí)現(xiàn)如下:
    //創(chuàng)建文件夾
    function mkdir(pos, dirArray,_callback){
      var len = dirArray.length;
      console.log(len);
      if( pos >= len || pos > 10){
        _callback();
        return;
      }
      var currentDir = '';
      for(var i= 0; i <=pos; i++){
        if(i!=0)currentDir+='/';
        currentDir += dirArray[i];
      }
      fs.exists(currentDir,function(exists){
        if(!exists){
          fs.mkdir(currentDir,function(err){
            if(err){
              console.log('創(chuàng)建文件夾出錯(cuò)!');
            }else{
              console.log(currentDir+'文件夾-創(chuàng)建成功!');
              mkdir(pos+1,dirArray,_callback);
            }
          });
        }else{
          console.log(currentDir+'文件夾-已存在!');
          mkdir(pos+1,dirArray,_callback);
        }
      });
    }
    //創(chuàng)建目錄結(jié)構(gòu)
    function mkdirs(dirpath,_callback) {
      var dirArray = dirpath.split('/');
      fs.exists( dirpath ,function(exists){
        if(!exists){
          mkdir(0, dirArray,function(){
            console.log('文件夾創(chuàng)建完畢!準(zhǔn)備寫入文件!');
            _callback();
          });
        }else{
          console.log('文件夾已經(jīng)存在!準(zhǔn)備寫入文件!');
          _callback();
        }
      });
    }
    首先把需要?jiǎng)?chuàng)建的一個(gè)目錄結(jié)構(gòu)存放到一個(gè)數(shù)組里面,然后主要采用深搜的思想去實(shí)現(xiàn)(深度為數(shù)組的長(zhǎng)度)。
    以上這篇Node.js 文件夾目錄結(jié)構(gòu)創(chuàng)建實(shí)例代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考