1 Star 0 Fork 0

Quarkzhong/easyapi

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
files.js 1.53 KB
一键复制 编辑 原始数据 按行查看 历史
Quarkzhong 提交于 2024-12-23 14:42 . feat:
const fs = require('fs')
const path = require('path')
const { formatTime, formatSize } = require('./utils')
const ip = require('ip')
const express = require('express')
const app = express()
/**
* @description 递归获取文件夹下所有文件和文件夹,返回树形结构
* @param {String} filePath 文件夹路径
* @returns {Array} 文件树
*/
const fileDisplay = (filePath) => {
const files = fs.readdirSync(filePath)
const fileList = []
files.forEach((filename) => {
const filedir = path.join(filePath, filename)
const stats = fs.statSync(filedir)
const isFile = stats.isFile()
const isDir = stats.isDirectory()
//跳过隐藏文件和modules文件夹
if (filename.startsWith('.') || filename === 'node_modules') return
if (isFile) {
fileList.push({
name: filename,
type: 'file',
fileType: path.extname(filename),
size: formatSize(stats.size),
time: formatTime(stats.mtime),
//访问路径
url: `http://${ip.address()}:12345/${path.relative(path.resolve(__dirname, './'), filedir).replace(/\\/g, '/')}`,
})
}
if (isDir) {
fileList.push({
name: filename,
type: 'dir',
time: formatTime(stats.mtime),
size: formatSize(stats.size),
children: fileDisplay(filedir),
})
}
})
return fileList
}
module.exports = fileDisplay
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Quarkzhong/easyapi.git
git@gitee.com:Quarkzhong/easyapi.git
Quarkzhong
easyapi
easyapi
master

搜索帮助