// 1.找符合要求上传的文件
const fs = require('fs');
const path = require('path');
let floader =['D:/Data/data20230207/HF100M', 'D:/Data/data20230708/HF100M'];
for (let i = 0; i < floader.length; i++) {
function findFiles(dir) {
const files = [];
const dirs = [];
const items = fs.readdirSync(dir); //读取路径下的所有文件夹
for (const item of items) { //遍历路径下的所有文件夹
const fullPath = path.join(dir, item); //路径拼接
const stat = fs.statSync(fullPath); //同步返回给定文件路径信息
if (stat.isFile()) {
files.push(fullPath);//满足要求的文件存放在files数组中
} else if (stat.isDirectory()) {//判断是文件夹的话
dirs.push(fullPath);//将完整的路径存放在dirs
const subFiles = findFiles(fullPath);//循环调用方法
// files.push(...subFiles);
}
}
// return files;
if ((files.length)!==0) {
console.log(files);
}
}
findFiles(floader[i])
}
错误总结:
1.要输出文件,需要放在数组files中,后输出files,不可直接输出
2. floader是个数组,需要循环读取,不可直接fs.readdirsync()读取文件内容
3.fs.readdirsync()同步读取的值需要使用变量储存,无法直接输出读取的data
4.若不想输出空的文件夹,添加if判断文件的长度不为0 即可