//操作文件/* 1、fs.stat 获取文件状态 2、fs.readdir 读取文件夹数据 3、fs.access 判断文件夹是否存在 4、path.join 拼路径*///操作文件const fs = require('fs');//操作路径const path = require('path');//1.接受命令行命令//3.判断路径是否存在//2.修正路径let inputPath = process.argv[2];//[2]是输入的路径名if(!inputPath) { //判断有没有输入内容 throw '请输入文件名!';}//转换路径格式为绝对路径inputPath = path.resolve(inputPath);//输入的路径存在就执行递归try{ //扩展:'.F_OK'==='检查目录中是否存在文件' //'.R_OK'==='检查文件是否可读',详细见nodejs文档 //也可以这样写 :判断是否存在,以及是否可读 //fs.accessSync(inputPath,fs.constants.F_OK|fs.constants.R_OK); //这里的 fs.constants.F_OK 是默认值,不用写 fs.accessSync(inputPath); testReadFiles(inputPath);}catch(err){ console.log(err);}function testReadFiles(filePath){ let state = fs.statSync(filePath); if(state.isFile()){ //是文件 console.log(filePath) }else if (state.isDirectory()){ //是文件夹 //先读取 let files = fs.readdirSync(filePath); files.forEach(file=>{ console.log(path.join(filePath,file)+',file') testReadFiles(path.join(filePath,file)); }); }}