Delapp 是一个 Windows 上删除文件与文件夹的工具,主要解决「被其他程序打开的文件和文件夹」无法删除的文件,还支持删除以.
或(空格)结尾的文件夹。还有速度快,支持 Windows 7,另外开发者的「瞎扯八道」写的好。@Appinn
来自发现频道,开发者 @differentrain 自荐:https://meta.appinn.net/t/topic/43782
这是一款被 @Debatrix 称为「刚听到感觉很没用,稍微想想又感觉很有用,再仔细想想还是很没用」的工具,青小蛙也这样觉得 😂
以下为原文:
简介
- 高速删除文件和文件夹
- 删除以
.
或 - 删除被其他程序打开的文件和文件夹
- 删除映射文件
- 删除正在运行的程序
- 删除正被使用的动态运行库
项目网站&下载
截图
瞎扯八道
很久以前写过一个类似的东西 DeletionTool, 不过它有不少小毛病,于是找个时间重写了一下。
其实“解除文件占用”从技术方面讲很简单,像 BlackINT3 大佬的 OpenArk, 解锁占用只是其中最微不足道的功能之一。
这项技术最大难点在于 Ring3 层面的束手束脚。最典型的例子 QueryObject,这玩意不进内核简直就是达利特,碰见 pipe 等大哥正在进行 SYNCHRONIZE 操作,直接挂起到老死,DeletionTool 就有这个问题。
写 Delapp 的时候,我不想为了小工具单独写个驱动,还得安装,麻烦且不环保,于是试了很多办法,研究了一两天才解决。
大部分接解除用工具到这里就结束了,实测的时候,还有一些情况无法解决,比如被删除的是一个程序exe,或者是一个正被使用的dll。当然这也不难,遇到程序直接关闭进程,遇到dll或者映射文件直接unmap。
于是Delapp解除占用的流程是这样的:首先判断被占用的是不是程序,如果是程序就关闭,如果是其他模块(dll)或者映射文件,则unmap掉,最后才是像其他程序一样检测句柄问题。
这套流程可以做到至少70%的文件都是想删就删,不过肯定有风险,某些软件可能就闪退了,这个没办法,于是我强制加了个提示,必须确认才会删除。
不过它毕竟是用户层的应用,对系统是没影响的,大概。我曾经一度想做个提权,弄到System权限,能删的东西就更多,不过单文件就做不到了,于是作罢。
还有就是以.
或(空格)结尾的文件夹。
打开命令行,输入 md test..\
,就可以创造一个名为test..
的文件夹,摁Delete或者邮件删不掉的,输入命令 rd test..\
才能删掉。我最开始遇见这个问题是下在本子的时候,特别糟心,可以说是我写这两个软件的最大动机了……
这个问题吧,是shell外壳程序的BUG导致的,这意味着系统通用的文件对话框完全不能用了,所以如上图,我做了个简陋的对话框,专门用来处理这种糟心货。
用起来肯定不如系统自带的那个方便,如果不是这种倒霉玩意儿,直接拖到软件上或者用右键菜单就可以了,要是遇上了,想删除或者修复的话,就用这对话框手动选择吧。
P·S:刚才发给朋友,被鄙视了,因为这程序不能删除自己……其实是能做到的,但要创建临时文件或者task了,不优雅。所以我把自身的路径,和所属文件夹路径都屏蔽了。
原文:https://www.appinn.com/delapp-for-windows/
微软的Powertoys有个查文件占用情况的功能,一般我平时用那个就足够,感觉也更安全。
而且还真没特别需要删过什么东西,对我来说更多是改目录或文件名的时候提醒文件被占用。
真是太谢谢。
经常有文件夹移动后,留下容量为零的同名文件夹。
因为是素人,就知道用安全模式,磁盘修复。
都没有办法删除。
多亏了这个软件,解决了我的困扰🙏