<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Node.JS枚舉統計當前文件夾和子目錄下所有代碼文件行數

        來源:懂視網 責編:小采 時間:2020-11-27 21:52:11
        文檔

        Node.JS枚舉統計當前文件夾和子目錄下所有代碼文件行數

        Node.JS枚舉統計當前文件夾和子目錄下所有代碼文件行數:使用Node.JS的大多數用記事本開發,有時侯會需要統計工程代碼量,然后記事本大部分沒有這個功能。其實用node.js幾行代碼就可以實現。 var path = require('path') var fs = require('fs') //需要統計的文件類型,可自己刪減,均小寫 var codes
        推薦度:
        導讀Node.JS枚舉統計當前文件夾和子目錄下所有代碼文件行數:使用Node.JS的大多數用記事本開發,有時侯會需要統計工程代碼量,然后記事本大部分沒有這個功能。其實用node.js幾行代碼就可以實現。 var path = require('path') var fs = require('fs') //需要統計的文件類型,可自己刪減,均小寫 var codes

        使用Node.JS的大多數用記事本開發,有時侯會需要統計工程代碼量,然后記事本大部分沒有這個功能。其實用node.js幾行代碼就可以實現。

        var path = require('path')
        var fs = require('fs')
        //需要統計的文件類型,可自己刪減,均小寫
        var codesFiles = [ '.css', '.js', '.html', '.tmpl', '.part', '.json', '.md', '.txt', '.yml', '.java', '.cs', '.c', '.h', '.cpp', '.xml', '.go', '.py' ]
        var LINES = 0
        var findFolder = function(srcDir, cb) {
         fs.readdir(srcDir, function(err, files) {
         var count = 0
         var checkEnd = function() {
         ++count == files.length && cb && cb()
         }
         if (err) {
         checkEnd()
         return
         }
         files.forEach(function(file) {
         var extname = path.extname(file).toLowerCase()
         var srcPath = path.join(srcDir, file)
         fs.stat(srcPath, function(err, stats) {
         if (stats.isDirectory()) {
         findFolder(srcPath, checkEnd)
         } else {
         if (codesFiles.indexOf(extname) < 0) {
         checkEnd()
         return
         }
         fs.readFile(srcPath, function(err, data) {
         if (err) {
         checkEnd()
         return
         }
         var lines = data.toString().split('\n')
         LINES += lines.length
         console.log(srcPath, lines.length)
         checkEnd()
         })
         }
         })
         })
         //為空時直接回調
         files.length === 0 && cb && cb()
         })
        }
        findFolder('./', function() {
         console.log('LINES:', LINES)
        })

        使用時將此腳本文件命名為lines.js,然后復制到需要統計的文件夾下,然后執行

        node lines.js

        然后會統計每一個代碼文件的長度,和代碼總行數:

        $ node lines.js
        lines.js 56
        package.json 6
        local\en-US.js 122
        local\FE.zh-CN.js 306
        ...
        LINES: 40464

        更新

        下面的腳本通過檢測是否含有ASC0的值來判斷文件是不文本文件,然后統計代碼行數,但實測統計數量明顯偏多。

        var path = require('path')
        var fs = require('fs')
        var LINES = 0
        var FILES = 0
        //https://github.com/hellosean1025/study/blob/master/function.js
        function isTextFile( filepath, length ) {
         fd = fs.openSync( filepath, 'r' );
         length = length || 1000;
         for( var i = 0;i < length;i++ ) {
         buf = new Buffer( 1 );
         var bytes = fs.readSync( fd, buf, 0, 1, i );
         char = buf.toString().charCodeAt();
         if ( bytes === 0) {
         return true;
         } else if(bytes === 1 && char === 0) {
         return false;
         }
         }
         return true;
        }
        var findFolder = function(srcDir, cb) {
         fs.readdir(srcDir, function(err, files) {
         var count = 0
         var checkEnd = function() {
         ++count == files.length && cb && cb()
         }
         if (err) {
         checkEnd()
         return
         }
         files.forEach(function(file) {
         var extname = path.extname(file).toLowerCase()
         var srcPath = path.join(srcDir, file)
         fs.stat(srcPath, function(err, stats) {
         if (stats.isDirectory()) {
         findFolder(srcPath, checkEnd)
         } else {
         // if (codesFiles.indexOf(extname) < 0) {
         // checkEnd()
         // return
         // }
         if (!isTextFile(srcPath)) {
         checkEnd()
         return
         }
         fs.readFile(srcPath, function(err, data) {
         if (err) {
         checkEnd()
         return
         }
         var lines = data.toString().split('\n')
         LINES += lines.length
         if (lines.length > 5000) {
         console.trace(srcPath, lines.length) 
         } else {
         console.log(srcPath, lines.length)
         }
         FILES++
         checkEnd()
         })
         }
         })
         })
         //為空時直接回調
         files.length === 0 && cb && cb()
         })
        }
        findFolder('./', function() {
         console.log('LINES:', LINES)
         console.log('FILES:', FILES)
        })

        總結

        以上所述是小編給大家介紹的Node.JS枚舉統計當前文件夾和子目錄下所有代碼文件行數,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
        如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Node.JS枚舉統計當前文件夾和子目錄下所有代碼文件行數

        Node.JS枚舉統計當前文件夾和子目錄下所有代碼文件行數:使用Node.JS的大多數用記事本開發,有時侯會需要統計工程代碼量,然后記事本大部分沒有這個功能。其實用node.js幾行代碼就可以實現。 var path = require('path') var fs = require('fs') //需要統計的文件類型,可自己刪減,均小寫 var codes
        推薦度:
        標簽: 文件 文件夾 統計
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲一区在线视频| 国产午夜亚洲精品不卡免下载| fc2成年免费共享视频网站| 国产在线观看免费视频播放器| 亚洲中文字幕无码一去台湾 | 免费人成在线观看网站品爱网日本| 亚洲中文无码永久免| 免费看片免费播放| 亚洲色偷偷狠狠综合网| 久久久久亚洲精品天堂| 免费一级全黄少妇性色生活片 | 午夜在线免费视频 | 污污免费在线观看| 亚洲午夜未满十八勿入网站2| 亚洲中文字幕久久精品无码2021| 四虎永久在线精品免费观看视频| 国产精品亚洲精品青青青| 在线免费观看色片| 免费在线观看自拍性爱视频| 国产亚洲av片在线观看18女人| 亚洲经典千人经典日产| 亚洲AV中文无码乱人伦| 亚洲av午夜精品无码专区| 热99re久久精品精品免费| 乱爱性全过程免费视频| 无码乱人伦一区二区亚洲一| 久久不见久久见免费影院www日本| 亚洲va久久久噜噜噜久久男同| 114一级毛片免费| 老司机午夜精品视频在线观看免费| 日韩版码免费福利视频| 国产成人 亚洲欧洲| 国产精品久久久亚洲| 中文字幕无码视频手机免费看| 国产精品自拍亚洲| 亚洲成色WWW久久网站| 成人毛片18女人毛片免费96| 91av免费在线视频| 亚洲国产最大av| 日日噜噜噜噜夜夜爽亚洲精品| a级毛片免费高清视频|