- Рекурсивно прочитать каталог;
- Для каждого файла с расширением .zip распаковать его с помощью 7-Zip CLI в каталог соответствующего файла (меня интересует использование метода «spawn()» для создания нового процесса);
- Когда генерируется событие закрытия, зарегистрируйте соответствующий код выхода.
Код: Выделить всё
import { readdir } from 'node:fs/promises';
import { join, extname } from 'node:path';
import { spawn } from 'node:child_process';
const pathToDir = 'D:\\test\\mydirectory';
try {
const entries = await readdir(pathToDir, { recursive: true, withFileTypes: true });
for (const entry of entries) {
const extension = extname(entry.name);
if (extension === '.zip') {
const extract = spawn( 'C:\\software\\7z2501-extra\\x64\\7za.exe', [ 'x', join(entry.parentPath, entry.name), '-o"' + entry.parentPath + '"' ] );
extract.on( 'close', ( code ) => console.log( `child process exited with code ${code}` ) );
}
}
} catch (err) {
console.error(err);
}
Код: Выделить всё
'"' + join(entry.parentPath, entry.name) + '"'
Подробнее здесь: https://stackoverflow.com/questions/798 ... pawn-metho
Мобильная версия