一、读取目录
1. 常用读取目录方式
const fs = require('fs')
const path = require('path')
let fileDir = path.resolve(__dirname, './fileDir')
// 异步读取目录内容
fs.readdir(fileDir, { encoding: 'utf8' }, (err, files) => {
if (err) throw err
console.log('读取的目录内容:', files)
// files:
// [
// 'dirName1',
// 'dirName2',
// ...
// 'fileName1'
// 'fileName2'
// ...
// ]
})
2. 语法说明
/*
* 异步读取目录内容,(若不存在目录,则发生异常)
* @param path {string | Buffer | URL |} 目录名
* @param options {Object | string}
* encoding {string | null}, 编码方式,默认值是 'utf8'
* withFileTypes {boolean}, 返回的文件对象是否包含文件类型,默认值为 false
* @param callback {Function} 回调函数
* err {Error} 读取目录内容时抛出的错误
* files {string[] | Buffer[] | fs.Dirent[]} 读取到的目录内容
*/
function readdir(path[, options], callback) {}
备注:
- 若
options
是字符串,则该值需是一个字符串编码类型
fs.readdir(path, 'utf8', (err, files) => {})
-
files
为读取到的 目录中 文件名称的 数 -
options
中的withFileTypes
若设置为true
,会返回 文件类型
fs.readdir(fileDir, { encoding: 'utf8', withFileTypes: true }, (err, files) => {
if (err) throw err
console.log('读取的目录内容:', files)
// files:
// [
// Dirent { name: 'dirName1', [Symbol(type)]: 2 },
// Dirent { name: 'fileName1', [Symbol(type)]: 1 }
// ]
})
二、同步读取目录
功能和参数与该接口的 异步 API 类似,只是参数少了 回调函数
const fs = require('fs')
fs.readdirSync(path[, options])