Node.js使用fs删除以点开头的文件夹报错,求解决方案
解决Node.js删除点开头文件夹的错误问题
这个
chunk参数错误和文件夹名称开头的点无关,它不是fs.promises.rm针对隐藏文件夹的报错,大概率是你代码里的错误处理逻辑出了问题——比如你用了process.stdout.write(err)这类方法,把Error对象直接传给了只接受字符串/Buffer的输出接口,才触发了这个类型错误。先简化代码验证:运行这段无多余错误处理的测试代码,确认
fs.promises.rm本身能否正常删除隐藏文件夹:const fs = require('fs'); (async () => { try { await fs.promises.rm('.TestDir', { recursive: true, force: true }); console.log('删除成功'); } catch (err) { console.error('删除失败:', err); } })();如果这段代码能成功执行,就说明问题出在你原代码的错误处理环节;如果仍报错,再看真实的错误信息定位问题。
Node.js v16.16的
fs.promises.rm完全支持删除点开头的隐藏文件夹,你用的recursive: true+force: true参数组合是正确的——force: true会忽略文件夹不存在的情况,recursive: true支持递归删除目录内所有内容。额外排查方向:
- 用
console.log(process.cwd())确认脚本运行的当前工作目录,检查.TestDir是否在该路径下。 - 确认Node.js进程有删除该文件夹的权限。
- 用
内容的提问来源于stack exchange,提问作者Nathan Kamenar
相关产品推荐
相关产品推荐

