未分類 2020 年 6 月 3 日 遇到一个问题,如何用代码强制删除已经被占用的文件? 遇到一个问题,如何用代码强制删除已经被占用的文件? 資深大佬 : yinian 64 常规做法,改名重启后再删除。具体要看场景。 大佬有話說 (10) 資深大佬 : pimin 就是有一个软件,里面有个功能是删除文件夹里的文件,而目前的情况是只要打开着软件,有些文件就会被占用着导致无法删除。 主 資深大佬 : yinian 对于 linux 没有 root+rm 删不掉的,发起狠来连自己都能干死;对于 windows,那么不简单,通常是管理员权限+各种隐藏 api,或者驱动,或者杀死 /吊起占用的软件。 資深大佬 : delectate windows 无解 資深大佬 : lihongjie0209 windows 上不是有 rimraf 文件 資深大佬 : fogg @fogg 不行的,比如开着 vscode,执行 `rimraf node_modules` 会卡很久,然后报错,文件夹还在。你得把 vscode 给关了,再删不掉你得找找是哪个进程占着这文件夹,再删不掉你还得看看是不是里面文件夹名字太长了。所以说码码 linux 最省心了,rm -rf / 就完事。 資深大佬 : orzorzorzorz 说下 Windows 下的,排除各种过滤驱动和 HOOK 保护,裸系统下。枚举系统文件句柄,根据句柄信息匹配到对应的文件,释放每个进程中的该文件句柄,删除文件之。当然还可以在文件系统上动手脚,不过通用性低。 資深大佬 : Cloutain 不知道能不能通过电路层直接抹掉对应扇区的磁信号?不管系统是不是占用。 資深大佬 : lc7029 win 下火绒一般都行 卸载流氓软件的 DLL 文件都能胜任 資深大佬 : tankren 蹲一个答案 我就想读取 Excel 已打开的.xlsx 都不行 資深大佬 : JCZ2MkKb5S8ZX9pq windows 上确实好难办到