go
io_error
ai_generated
true
error: 删除 /tmp/dir: 目录非空
error: remove /tmp/dir: directory not empty
ID: go/os-dir-not-empty
80%修复率
87%置信度
0证据数
2024-04-09首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 1.19 | active | — | — | — |
根因分析
os.Remove 不能递归删除,目录中仍有文件或子目录时失败。
English
尝试使用 os.Remove 删除非空目录,但该函数只支持删除空目录。
解决方案
-
95% 成功率
使用 os.RemoveAll 并检查返回值
-
90% 成功率
遍历目录并递归删除所有内容
无效尝试
常见但无效的做法:
-
60% 失败
RemoveAll 可能部分删除,忽略错误导致状态不一致
-
80% 失败
子目录递归未处理