最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

NodeJS遍歷文件生產(chǎn)文件列表功能示例

 更新時間:2017年01月22日 11:54:15   作者:小小平凡世界  
這篇文章主要介紹了NodeJS遍歷文件生產(chǎn)文件列表功能,結(jié)合實例形式分析了nodejs針對文件與目錄的遍歷、判斷及讀寫等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了NodeJS遍歷文件生產(chǎn)文件列表功能。分享給大家供大家參考,具體如下:

功能需求:在工作中我們可能經(jīng)常需要知道項目中靜態(tài)文件列表發(fā)布,一個一個去檢索寫,那就太苦逼了。

要想知道里面的文件列表是不是很蛋疼,可能我們也會有dos tree去獲取。

這里分享一下,通過node,知道文件路徑,并配置遠(yuǎn)程路徑,直接copy,發(fā)布。

新建filelist.js 里面都有注釋,我就不哆嗦了.

var fs = require("fs");
//path模塊,可以生產(chǎn)相對和絕對路徑
var path = require("path");
//配置遠(yuǎn)程路徑
var remotePath = "/resource/fd/promote/201507/qixi/";
//獲取當(dāng)前目錄絕對路徑,這里resolve()不傳入?yún)?shù)
var filePath = path.resolve();
//讀取文件存儲數(shù)組
var fileArr = [];
//讀取文件目錄
fs.readdir(filePath,function(err,files){
  if(err){
    console.log(err);
    return;
  }
  var count = files.length;
  //console.log(files);
  var results = {};
  files.forEach(function(filename){
    //filePath+"/"+filename不能用/直接連接,Unix系統(tǒng)是”/“,Windows系統(tǒng)是”\“
    fs.stat(path.join(filePath,filename),function(err, stats){
      if (err) throw err;
      //文件
      if(stats.isFile()){
        if(getdir(filename) == 'html'){
          var newUrl=remotePath+filename;
          fileArr.push(newUrl);
          writeFile(fileArr);
        }
        // (getdir(filename) == 'html')&&(fileArr.push(filename);writeFile(newUrl));
      //  console.log("%s is file", filename);
      }else if(stats.isDirectory()){
        // console.log("%s is a directory文件目錄", filename);
         //返回指定文件名的擴(kuò)展名稱 
         //console.log(path.extname("pp/index.html"));
         if(filename == 'css' || filename == 'images'){
//var readurl = filePath+'/'+filename;
             //filePath+"/"+filename不能用/直接連接,Unix系統(tǒng)是”/“,Windows系統(tǒng)是”\“
           //  console.log(path.join(filePath,filename));
             var name = filename;
             readFile(path.join(filePath,filename),name);
         }
      }
    });
  });
});
//獲取后綴名
function getdir(url){
  var arr = url.split('.');
  var len = arr.length;
  return arr[len-1];
}
//獲取文件數(shù)組
function readFile(readurl,name){
  console.log(name);
  var name = name;
  fs.readdir(readurl,function(err,files){
    if(err){console.log(err);return;}
    files.forEach(function(filename){
     // console.log(path.join(readurl,filename));
      fs.stat(path.join(readurl,filename),function(err, stats){
        if (err) throw err;
        //是文件
        if(stats.isFile()){
          var newUrl=remotePath+name+'/'+filename;
          fileArr.push(newUrl);
          writeFile(fileArr)
        //是子目錄
        }else if(stats.isDirectory()){
          var dirName = filename;
          readFile(path.join(readurl,filename),name+'/'+dirName);
          //利用arguments.callee(path.join())這種形式利用自身函數(shù),會報錯
          //arguments.callee(path.join(readurl,filename),name+'/'+dirName);
        }
      });
    });
  });
}
// 寫入到filelisttxt文件
function writeFile(data){
  var data = data.join("\n");
  fs.writeFile(filePath+"/"+"filelist.txt",data+'\n',function(err){
    if(err) throw err;
    console.log("寫入成功");
  });
}

當(dāng)我們執(zhí)行

node flielist.js

就會生產(chǎn)filelist.txt,文件里面就包含了我們想要的路徑。

有時,我們通常遇到刪除不了的文件,由于文件縱深太長導(dǎo)致 rm _rf也刪不了,但是我們通過nodejs可以辦到:

var fs = require("fs");
var path = require("path");
deleteFolderRecursive = function(url) {
  var files = [];
  //判斷給定的路徑是否存在
  if( fs.existsSync(url) ) {
    //返回文件和子目錄的數(shù)組
    files = fs.readdirSync(url);
    files.forEach(function(file,index){
      // var curPath = url + "/" + file;
      var curPath = path.join(url,file);
      //fs.statSync同步讀取文件夾文件,如果是文件夾,在重復(fù)觸發(fā)函數(shù)
      if(fs.statSync(curPath).isDirectory()) { // recurse
        deleteFolderRecursive(curPath);
      // 是文件delete file  
      } else { 
        fs.unlinkSync(curPath);
      }
    });
    fs.rmdirSync(url);
  }else{
    console.log("給定的路徑不存在,請給出正確的路徑");
  }
};
deleteFolderRecursive("./grunt");

希望本文所述對大家nodejs程序設(shè)計有所幫助。

相關(guān)文章

  • 在Debian(Raspberry Pi)樹莓派上安裝NodeJS的教程詳解

    在Debian(Raspberry Pi)樹莓派上安裝NodeJS的教程詳解

    在樹莓派上運(yùn)行NodeJS并不需要特別的配置,你只需要確??梢杂胦penssh遠(yuǎn)程連接到你的樹莓派就ok了,關(guān)于在Debian(Raspberry Pi)樹莓派上安裝NodeJS的方法,大家可以通過本文了解下
    2017-09-09
  • electron安裝報錯終極解決辦法詳細(xì)講解

    electron安裝報錯終極解決辦法詳細(xì)講解

    當(dāng)使用npm安裝electron時,有時候會遇到各種各樣的錯誤,如網(wǎng)絡(luò)錯誤、權(quán)限錯誤等等,這篇文章主要給大家介紹了關(guān)于electron安裝報錯終極解決辦法的相關(guān)資料,需要的朋友可以參考下
    2024-09-09
  • 利用Node.js手寫一個簡單的koa

    利用Node.js手寫一個簡單的koa

    這篇文章主要為大家詳細(xì)介紹了如何手動寫一個簡單的koa,通過這個流程就可以較好的掌握koa2中的基本概念,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Express URL跳轉(zhuǎn)(重定向)的實現(xiàn)方法

    Express URL跳轉(zhuǎn)(重定向)的實現(xiàn)方法

    Express是一個基于Node.js實現(xiàn)的Web框架,其響應(yīng)HTTP請求的response對象中有兩個用于URL跳轉(zhuǎn)方法res.location()和res.redirect(),使用它們可以實現(xiàn)URL的301或302重定向。
    2017-04-04
  • node.js學(xué)習(xí)總結(jié)之調(diào)式代碼的方法

    node.js學(xué)習(xí)總結(jié)之調(diào)式代碼的方法

    調(diào)式代碼很多時候類似于查案一樣,只是結(jié)果的重要程度不同,警察查案為的是人民安穩(wěn),而我們調(diào)式則是為了系統(tǒng)的安穩(wěn)。既然這樣我們就不要冤枉任何一段代碼和程序,以免他們受到不合理的懲罰。
    2014-06-06
  • PHP和NodeJs開發(fā)的應(yīng)用如何共用Session

    PHP和NodeJs開發(fā)的應(yīng)用如何共用Session

    這篇文章主要介紹了PHP和NodeJs開發(fā)的應(yīng)用如何共用Session的相關(guān)資料及思路,需要的朋友可以參考下
    2015-04-04
  • Nodejs中使用phantom將html轉(zhuǎn)為pdf或圖片格式的方法

    Nodejs中使用phantom將html轉(zhuǎn)為pdf或圖片格式的方法

    這篇文章主要介紹了Nodejs中使用phantom將html轉(zhuǎn)為pdf或圖片格式的方法,需要的朋友可以參考下
    2017-09-09
  • NodeJS基礎(chǔ)API搭建服務(wù)器詳細(xì)過程記錄

    NodeJS基礎(chǔ)API搭建服務(wù)器詳細(xì)過程記錄

    本文將以一個超小型web項目,來詳細(xì)介紹如何使用NodeJS基礎(chǔ)的http, fs, path, url等模塊提供的API來搭建一個簡單的web服務(wù)器。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • 詳解Node.js讀寫中文內(nèi)容文件操作

    詳解Node.js讀寫中文內(nèi)容文件操作

    在本篇文章中我們給大家分享了關(guān)于Node.js讀寫中文內(nèi)容文件操作的相關(guān)知識點內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2018-10-10
  • Node.js中的模塊系統(tǒng)介紹

    Node.js中的模塊系統(tǒng)介紹

    這篇文章介紹了Node.js中的模塊系統(tǒng),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評論

新余市| 阿图什市| 勃利县| 平凉市| 定南县| 孟连| 四川省| 渝北区| 桐城市| 南宫市| 从化市| 高邑县| 葫芦岛市| 星子县| 潞西市| 工布江达县| 安平县| 临江市| 旌德县| 吴江市| 石楼县| 峨边| 余庆县| 桑日县| 三原县| 四川省| 五台县| 息烽县| 柳河县| 新密市| 新乐市| 青阳县| 集安市| 三门县| 南宫市| 辽阳县| 阳江市| 西贡区| 武夷山市| 景宁| 孙吴县|