NodeJS遍曆檔案生產檔案清單

來源:互聯網
上載者:User

NodeJS遍曆檔案生產檔案清單
這裡分享一下,通過node,知道檔案路徑,並配置遠程路徑,直接copy,發布。 建立filelist.js 裡面都有注釋,我就不哆嗦了.

var fs = require("fs");//path模組,可以生產相對和絕對路徑var path = require("path"); //配置遠程路徑var remotePath = "/resource/fd/promote/201507/qixi/";//擷取目前的目錄絕對路徑,這裡resolve()不傳入參數var filePath = path.resolve();//讀取檔案儲存體數組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系統是”/“,Windows系統是”\“        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);                 if(filename == 'css' || filename == 'images'){                         //var readurl = filePath+'/'+filename;                         //filePath+"/"+filename不能用/直接連接,Unix系統是”/“,Windows系統是”\“                     //    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];}//擷取檔案數組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())這種形式利用自身函數,會報錯                    //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("寫入成功");    });}

 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.