提问者:小点点

如何用“archiver.js”控制压缩目录和文件的顺序?


我正在使用归档程序压缩两个文件夹xy:

const out = ... // file write stream
...
const zip = archiver('zip', {});
zip.on('error', (err: Error) => { throw err; });

zip.pipe(out);
zip.directory('x', 'x');
zip.directory('y', 'y');
zip.finalize();

zip文件可以,但unzip-l显示xy交错。
(看起来归档程序以BFS顺序遍历xy)。

x/x1
x/x2
y/y1
y/y2
x/x1/x11.txt
x/x2/x21.txt
y/y1/y11.txt

我想在DFS中压缩xy,所以unzip-l显示:

x/x1
x/x1/x11.txt
x/x2
x/x2/x21.txt
y/y1
y/y1/y11.txt
y/y2

如何控制压缩目录和文件的顺序?


共1个答案

匿名用户

您可以使用glob()方法而不是directory()使用glob模式匹配文件。

它将在dfs-order中追加文件。

该指令应如下所示:

zip.glob('{x,y}/**/*');