编辑
2026-01-09
后端
00
请注意,本文编写于 46 天前,最后修改于 46 天前,其中某些信息可能已经过时。

目录

复制文件夹
压缩目录

复制文件夹

js
const fs = require('fs'); const path = require('path'); /** * 复制目录 * @param {string} originDir 源目录 * @param {string} remoteDir 目标目录 */ function copyDir(originDir, remoteDir) { if (!fs.existsSync(remoteDir)) { // recursive:递归 fs.mkdirSync(remoteDir, { recursive: true }); } // 转成dirent对象数组,否则只有[名称]数组 let files = fs.readdirSync(originDir, { withFileTypes: true }); console.log('print ~ copyDir ~ files:', files); files.forEach((file) => { if (file.isDirectory()) { copyDir( path.resolve(originDir, file.name), path.resolve(remoteDir, file.name), ); } else { fs.copyFileSync( path.resolve(originDir, file.name), path.resolve(remoteDir, file.name), ); } }); console.log('print ~ copyDir ~ files:', files); }

压缩目录

js
const fs = require('fs'); const path = require('path'); const archiver = require('archiver'); /** * 压缩目录 * @param {string} sourceDir 源目录 * @param {string} outPath 输出路径 */ function zipDir(sourceDir, outPath) { return new Promise((resolve, reject) => { const output = fs.createWriteStream(outPath); const archive = archiver('zip', { zlib: { level: 9 }, // 压缩级别 1-9 }); output.on('close', () => { console.log(`压缩完成:${archive.pointer()} bytes`); resolve(); }); archive.on('error', (err) => reject(err)); archive.pipe(output); // 把整个目录加入 zip archive.directory(sourceDir, false); archive.finalize(); }); }

本文作者:薛祁

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!