TS如何从目录中提取所有指定扩展名的文件(tsv文件读取)太疯狂了

随心笔谈2年前发布 admin
171 0 0

文章摘要

该代码实现了一个递归文件提取功能,用于从指定源路径(srcPath)提取所有具有指定扩展名(exts)的文件,并将这些文件复制到目标路径(destPath)。代码首先验证了源路径的存在性,接着创建目标路径(如果需要),然后遍历源路径中的所有文件,判断其类型(文件或目录),并根据情况递归处理文件夹或复制符合条件的文件。通过使用`fs`和`path`模块,代码实现了路径转换和文件操作。该功能适用于自动化文件管理任务,如整理文件或迁移数据。

import path from ‘path’
import fs from ‘fs’

function extractAllFiles(srcPath: string, destPath: string, exts: string[]) {
// 如果源目录不存在,直接结束程序
if (!fs.existsSync(srcPath)) {
return console.log(`源目录不存在,请核对修改!`)
}
// 如果存放目录不存在,则创建
!fs.existsSync(destPath) && fs.mkdirSync(destPath)
// 获取src和dest的绝对路径
const realSrc=fs.realpathSync(srcPath)
const realDest=fs.realpathSync(destPath)
// 遍历src,判断文件类型
fs.readdirSync(realSrc).forEach(filename=> {
// 拼接文件的绝对路径
const realFile=path.resolve(realSrc, filename)
// 如果是目录,递归提取
if (fs.statSync(realFile).isDirectory()) {
extractAllFiles(realFile, realDest, exts)
} else {
// 如果是文件,则判断其扩展名是否在给定的扩展名数组中,在则将该文件复制到dest中
if (exts.includes(path.extname(filename))) {
fs.copyFileSync(realFile, path.resolve(realDest, filename))
}
}
})
}

© 版权声明

相关文章