可以通过以下步骤实现:
fs
模块)来获取目录路径。readdirSync
)来获取当前目录下的文件和子目录列表。然后,我们可以使用循环结构(如for
循环)遍历列表。zlib
模块)来对该文件夹进行压缩。以下是一个示例代码,实现了循环遍历目录并压缩没有父路径的特定文件夹:
const fs = require('fs');
const path = require('path');
const zlib = require('zlib');
function compressFolderWithoutParentPath(directory) {
const files = fs.readdirSync(directory);
for (const file of files) {
const filePath = path.join(directory, file);
const stat = fs.statSync(filePath);
if (stat.isDirectory()) {
compressFolderWithoutParentPath(filePath); // 递归处理子目录
} else {
const parentPath = path.dirname(filePath);
if (parentPath !== directory) {
// 文件没有父路径,进行压缩操作
const gzip = zlib.createGzip();
const readStream = fs.createReadStream(filePath);
const writeStream = fs.createWriteStream(filePath + '.gz');
readStream.pipe(gzip).pipe(writeStream);
}
}
}
}
const targetDirectory = '/path/to/target/directory';
compressFolderWithoutParentPath(targetDirectory);
上述代码通过compressFolderWithoutParentPath
函数递归遍历指定目录及其子目录,并压缩没有父路径的特定文件夹。在实际使用时,需要将targetDirectory
替换为实际的目标目录路径。
注意:以上示例代码仅为演示循环遍历目录并压缩没有父路径的特定文件夹的过程,并未涉及任何特定云计算品牌商的产品或服务。
领取专属 10元无门槛券
手把手带您无忧上云