You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用child_process.spawnSync解压文件时遭遇ENOENT错误求助

问题解决:spawnSync执行unzip抛出ENOENT错误

你的问题核心是**spawnSync的参数使用方式错误**:

  • spawnSync的第一个参数必须是单独的命令名(比如unzip),不能把命令和参数拼成一个完整字符串传入
  • 第二个参数才是该命令对应的所有参数组成的数组

你现在把unzip ${path}作为第一个参数,Node会尝试查找名为unzip /<...>/unzipFiles/test/zipp.zip的可执行文件——系统里根本不存在这个命令,所以抛出ENOENT错误。

修正后的代码

const { spawnSync } = require('child_process');

// 过滤空参数,避免给unzip传递无效的空字符串
const args = [path];
if (passwordArg) args.push(passwordArg);
if (outputArg) args.push(outputArg);

const result = spawnSync('unzip', args);

额外注意事项

  • 如果文件路径包含空格,不需要手动加引号,spawnSync会自动处理参数的空格转义,这比直接拼接字符串更安全
  • 确保unzip命令在Node进程的PATH环境变量中(你手动能执行说明没问题,但特殊环境比如Docker容器需要额外确认)
  • 空字符串参数会被unzip判定为无效参数,所以一定要过滤passwordArg、outputArg这类可能为空的参数

内容的提问来源于stack exchange,提问作者Jake Jackson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:00:56