节点 js 子进程删除多个文件
Node js child process delete multiple files
我正在尝试设置一个节点.js子进程以通过终端删除多个文件。这在删除一个文件时有效 - 但在我提供文件数组时失败。
const spawnSync = require('child_process').spawnSync;
var toDelete = array.join(' ');
if (toDelete.length) {
spawnSync('rm', ['-rf', toDelete ]);
}
我认为最终会以 rm -rf data/foo.txt data/bar.txt的形式发送(当我将其输入终端时会起作用)
。但是,我一定做错了。
这是因为它将字符串作为单个参数传递给rm -rf
就像您键入的那样:
# rm -rf "data/foo.txt data/bar.txt"
由于空格是Unix中文件名的有效字符,因此它会尝试删除名为"data/foo.txt data/bar.txt"的单个文件。
因此,您应该直接传递数组:
if (toDelete.length) {
spawnSync('rm', ['-rf'].concat(toDelete));
}
相关文章:
- 正在使用Dropzone.js删除服务器上已重命名的文件
- 使用javascript删除上传的文件
- 如何修复:当javascript更改DOM时,iOS会删除CSS文件
- 如何在Javascript/Jquery中删除所选文件
- 使用AJAX传递的数据编辑XML文件-正在删除XML数据
- 如何动态添加或删除Chrome扩展、内容脚本、javascript文件
- 为什么当我上传文件并点击更多上传另一个文件的第一个删除
- Javascript:下载后从文件夹中删除文件
- 使用Gulp删除所有例外文件
- 如何从 Chrome 中的文件输入中删除“未选择文件”工具提示
- Google PageSpeed Insights说“删除渲染阻塞js文件”
- 选择并删除要解析的文件和/或文件夹
- 烧瓶 - 下载后删除文件
- 使用 jQuery 从 HTML 中的多个图像元素中删除文件路径
- 正在添加用于文件删除的eventListener
- 如何最好地在文件删除时触发事件
- 文件删除 JSON 响应
- 进程无法访问该文件,因为另一个进程正在使用该文件(删除文件夹)
- PhoneGap文件删除不起作用
- 文件删除未通过客户参数