VScode搜索功能图示:
关键点:读取目录文件夹,判断是否文件夹,若是递归继续读取,否则通过正则或普通匹配关键词。
统计唯一文件名数量,统计总搜索记录数量累加,展示结果。
Core code:
const fs = require('fs'); const path = require('path'); // const basePath = path.resolve('src'); // const matchFile = /\.(jsx?|css)$/; const basePath = path.normalize('D:\\Dev\\xxx\\src\\main\\webapp'); const matchFile = /\.(jsp?|css)$/; const searchWord = /\/assetWithdraw\/.*?\.html/img; const matchList = {}; let fileCount = 0; const isDirectory = source => fs.lstatSync(source).isDirectory(); const getDirectories = source => fs.readdirSync(source).map(fileName => { const newPath = path.join(source, fileName); if (isDirectory(newPath)) { getDirectories(newPath); } else { if (matchFile.test(fileName)) { const contents = fs.readFileSync(newPath, 'utf8'); let matchs = contents.match(searchWord); if (matchs) { fileCount += 1; matchs.map(v => { matchList[newPath] = (matchList[newPath] || 0) + 1; }); } } } }); getDirectories(basePath); const sortList = Object.keys(matchList); console.log(`Stat: ${Object.values(matchList).reduce((a,b) => a+b, 0)} results in ${fileCount} files (Unique of ${sortList.length})\n`); console.log(sortList.map((v, i) => `${i+1}, ${v} (${matchList[v]})`).join('\n'));
搜索结果print:
Stat: 179 results in 65 files (Unique of 65) 1, D:xxx.js (1) 2, D:xxx.js (6) 3, D:xxx.js (1) 4, D:xxx.js (3) 5, D:xxx.js (4) 6, D:xxx.js (1) 7, D:xxx.js (2) 8, D:xxx.js (1) 9, D:xxx.js (1) 10, D:xxx.js (2) 11, D:xxx.js (2) 12, D:xxx.js (2) 13, D:xxx.js (5) 14, D:xxx.js (1) 15, D:xxx.js (2) 16, D:xxx.js (1) 17, D:xxx.js (4) 18, D:xxx.js (2) 19, D:xxx.js (1) 20, D:xxx.js (1) 21, D:xxx.js (1) 22, D:xxx.js (1) 23, D:xxx.js (2) 24, D:xxx.js (7) 25, D:xxx.js (1) 26, D:xxx.js (2) 27, D:xxx.js (1) 28, D:xxx.js (4) 29, D:xxx.js (2) 30, D:xxx.js (1) 31, D:xxx.js (1) 32, D:xxx.js (1) 33, D:xxx.js (1) 34, D:xxx.js (2) 35, D:xxx.js (7) 36, D:xxx.js (1) 37, D:xxx.js (2) 38, D:xxx.js (1) 39, D:xxx.js (4) 40, D:xxx.js (2) 41, D:xxx.js (1) 42, D:xxx.js (1) 43, D:xxx.js (1) 44, D:xxx.js (1) 45, D:xxx.js (2) 46, D:xxx.js (6) 47, D:xxx.js (13) 48, D:xxx.js (3) 49, D:xxx.js (3) 50, D:xxx.js (1) 51, D:xxx.js (4) 52, D:xxx.js (1) 53, D:xxx.js (3) 54, D:xxx.js (3) 55, D:xxx.js (13) 56, D:xxx.js (3) 57, D:xxx.js (3) 58, D:xxx.js (13) 59, D:xxx.js (3) 60, D:xxx.js (3) 61, D:xxx.js (3) 62, D:xxx.js (1) 63, D:xxx.js (4) 64, D:xxx.js (1) 65, D:xxx.js (2)
相关推荐
本篇文章将深入探讨如何使用Node.js实现这一功能。 首先,我们需要了解Node.js的fs模块。fs模块是Node.js的核心模块,提供了异步和同步的文件系统操作方法,如读取、写入、创建、删除文件和目录等。要读取本地目录...
实现遍历文件夹功能的代码中,使用了`fs.readdirSync`方法,该方法同步读取目录内容,并返回一个文件名的数组。通过递归调用`readFile`函数,程序能够深入到每一个子目录中继续遍历,对于每一个文件,程序会使用`fs....
总之,Git 2.43、Node.js和VSCode的组合是现代Web开发中的常用工具集,它们各自提供了强大的功能,而当它们协同工作时,可以创建出高效、灵活的开发环境。无论是个人开发还是团队协作,这样的组合都能够满足大多数...
NodeJs实现读取目录文件(node dir_new list),以及文件批量生成(node dir_new)
9. **VSCode Icons**: 为你的项目文件和文件夹提供美观的图标,使得代码库看起来更加清晰有序。 10. **Code Spell Checker**: 检查代码中的拼写错误,避免因拼写错误导致的不必要的问题。 11. **REST Client**: 在...
在实际操作中,你可能需要查看这个文件夹的内容,根据其中的说明来完成NVM的安装和配置。 为了正确安装和使用NVM,你可以按照以下步骤进行: 1. 下载并解压NVM for Windows到你选择的目录。 2. 配置环境变量:设置...
title: nodejs递归读取所有文件- 技术nodejs递归读取所有文件var path = require('path');function readF
在 NodeJS 开发中,VsCode 是一个非常流行的选择,因为它提供了强大的调试功能。在 Docker 中运行 NodeJS 程序时,如何使用 VsCode 进行调试是一个非常重要的问题,本文将介绍如何使用 VsCode 调试 Docker 中的 ...
而createReadStream则提供了一个流式读取文件的方式,适合读取大文件或提供文件下载服务,这样可以实现断点续传功能。 在读取文件之前,我们需要根据请求的URL确定实际的文件路径。如果请求的文件不存在,应当返回...
vscode-debug-nodejs-es6, 如何使用VSCode调试 ES6 NodeJS vscode-debug-nodejs-es6如何使用VSCode调试 ES6 NodeJS 先决条件VSCode: http://code.visualstudio.com/NodeJS: https://nodejs.o
使用nodejs下载网站中的图片,nodejs爬图
一个用NodeJS实现的Ftp Servce
1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用! 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目...
在Node.js环境下,循环递归复制文件夹以及其子文件夹下的所有文件,可以通过使用Node.js内置的fs模块来实现。fs模块提供了文件系统操作的API,包括读取、写入、创建和删除文件等。递归复制文件夹的关键在于能够遍历...
nodejs实现websocket服务与html+js聊天通信示例 1.先装一个nodeJs的模块,叫nodejs-websocket . 2.直接在nodeJs命令行中敲入:npm install nodejs-websocket回车就可以安装好了. 3.开始建立服务器了,因为有了nodejs...
NodeJs实现水仙花数,模块化
nodejs ssh2基本功能的封装,连接,下载,上传文件,下载文件,上传文件夹,下载文件夹,创建目录,删除目录,运行shell命令
总结来说,Node.js中的文件夹深层复制功能利用`fs`模块提供的API,通过递归遍历和文件操作实现。这种方法不仅提高了工作效率,而且减少了错误的可能性。对于前端开发者来说,掌握Node.js基础和文件系统操作,能够...
标题"vsCode与nodejs程序安装包.zip"暗示了这是一个包含Visual Studio Code(简称vsCode)编辑器和Node.js程序安装文件的压缩包。vsCode是微软开发的一款强大的源代码编辑器,支持多种编程语言,具有丰富的插件系统...
vscode-id: 此Visual Studio Code扩展是为Node-js项目构建的。 它提供: MongoDB连接和查询的代码段。 命令面板功能设置样板代码。 猫鼬模型的完成建议。 直接从编辑器连接Mongo Connect 。 目录: 产品特点 ...