关于node对文件的读取
程序员文章站
2022-04-15 16:51:32
设计: 通过终端git / cmd 获取用户输入路径,然后遍历路径下所有的文件,打印输出。 因为需要命令行交互,所以引入prompt库 (https://github.com/flatiron/prompt) 。 基于node的fs模块完成。以下是代码: 返回结果实例: ......
设计: 通过终端git / cmd 获取用户输入路径,然后遍历路径下所有的文件,打印输出。
因为需要命令行交互,所以引入prompt库 () 。
基于node的fs模块完成。以下是代码:
1 var prompt = require('prompt'); 2 var fs = require('fs'); 3 4 //开启prompt 5 prompt.start(); 6 7 // 自定义填写内容和校验 8 var schema = { 9 properties: { 10 'path': { 11 description: '文件地址', 12 required: 'true', 13 pattern: /[a-za-z]:(\\([a-za-z0-9_]+.[a-za-z0-9_]{1,16}))+/, // 文件 | 文件夹校验 14 } 15 } 16 }; 17 18 const readfilesync = (dir, prefix = ' -') => { 19 // 获取当前目录下所有文件 + 文件夹 20 let files_all = fs.readdirsync(dir); 21 for(let i = 0; i < files_all.length; i++) { 22 // 获取单个文件信息 23 let stats = fs.lstatsync(dir + '\\' + files_all[i]); 24 // 判断是都为文件夹 25 if (stats.isdirectory()) { 26 // 文件夹打印 27 console.log(prefix + files_all[i]); 28 // 文件夹重读 29 readfilesync(dir + '\\' + files_all[i], ' ' + prefix); 30 } else { 31 console.log(prefix + files_all[i]); 32 } 33 } 34 } 35 36 prompt.get(schema, (err, result) => { 37 console.log(' 文件地址: ' + result.path); 38 // 开始同步读取 39 readfilesync(result.path); 40 // 结束操作,关闭prompt 41 prompt.stop(); 42 });
返回结果实例: