21xrx.com
2024-09-19 09:43:11 Thursday
登录
文章检索 我的文章 写文章
Node.js:获取文件夹及其所有文件
2023-07-04 23:31:43 深夜i     --     --
Node js 获取文件夹 所有文件 遍历 文件系统

Node.js 是一款使用 JavaScript 构建高性能、可伸缩网络应用的开源平台,它的流程控制、事件驱动和非阻塞 I/O 模型使它在数据密集的应用场景下表现出色,如何获取文件夹及其所有文件是 Node.js 实际应用中常见的需求,接下来我们将介绍如何实现。

首先需要用到 Node.js 的一个内置模块 fs,它可以用来访问本地文件系统。通过调用 fs 模块的 readdir 方法,可以获取指定目录下的所有文件和文件夹。


const fs = require('fs')

fs.readdir('/path/to/dir', (err, files) => {

 if (err) {

  console.log(err)

 } else {

  console.log(files)

 }

})

通过执行上述代码,即可获取 path/to/dir 目录下的所有文件及文件夹名称,但是这只是获取了当前目录下的内容,如果需要遍历整个文件夹树,需要借助递归来实现。


const fs = require('fs')

const path = require('path')

function getFiles(dir, filesList = []) {

 const files = fs.readdirSync(dir)

 files.forEach((file) => {

  const filePath = path.join(dir, file)

  if (fs.statSync(filePath).isDirectory()) {

   filesList = getFiles(filePath, filesList)

  } else {

   filesList.push(filePath)

  }

 })

 return filesList

}

const files = getFiles('/path/to/dir')

console.log(files)

上述代码使用递归实现了获取指定目录下的所有文件及其子文件夹中的所有文件,其中 isDirectory 方法可以判断该路径是否为文件夹,如果是则继续递归处理,如果不是则加入到文件列表中。最终返回的文件列表即是目标文件夹及其子文件夹中的所有文件。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复