前言
这次遇到一个项目需要用node读取服务器上指定文件夹中的所有视频文件,并通过接口返回给前端。之前没有做过类似的内容,特此记录。
在此我用到的库是fs库 先贴下官方文档
fs 文件系统 | Node.js API 文档
注:我这边用的是递归调用,可以调用更深层级的目录文件
const fs = require('fs')
/**
* 加载指定文件夹下指定后缀的文件路径列表 (不给exts参数时则获取所有类型文件)
* 调用方法
* loadFileNameByPath4Ext(‘C:\xxx\xxx’)
* 或者
* loadFileNameByPath4Ext(‘C:\xxx\xxx’,['mp4','gcc'])
* */
function loadFileNameByPath4Ext (val,exts) {
let arrFiles = []
const files = fs.readdirSync(val)
for (let i = 0; i < files.length; i++) {
const item = files[i]
const stat = fs.lstatSync(val + '\\' + item)
if (stat.isDirectory() === true) {
arrFiles.push(loadFileNameByPath4Ext(val + '\\' + item,exts))
} else {
if(exts!=undefined&&exts!=null&&exts.length>0){
for(let j=0;j<exts.length;j++){
let ext=exts[j];
if(item.split('.').pop().toLowerCase()==ext.trim().toLowerCase()){
arrFiles.push(val + '\\' + item)
break;
}
}
}else{
arrFiles.push(val + '\\' + item)
}
}
}
return arrFiles
}