Content

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

文章摘要

这篇文章介绍了一个使用JavaScript编写的功能性函数`extractAllFiles`,该函数可以将指定扩展名的文件从一个源目录提取到目标目录。函数首先检查源目录是否存在,若不存在则提示错误信息;接着确保目标目录存在并创建它。然后通过遍历源目录中的所有文件,判断每个文件是否为目录或普通文件。如果是文件且其扩展名在指定的扩展名数组中,则将文件复制到目标目录;如果是目录,则递归调用函数处理其中的文件。整个过程通过使用`fs`模块进行路径操作和文件管理。

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)) } } }) }