循环遍历固定的多个路径下得多个文件夹,并输出文件夹下的所有文件

// 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 即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值