| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5755 人关注过本帖, 2 人收藏
标题:100分求强制删除文件/文件夹的代码
只看楼主 加入收藏
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
结帖率:100%
收藏(2)
已结贴  问题点数:100 回复次数:20 
100分求强制删除文件/文件夹的代码
注意:是强制。
随便在网上整点SHFileOperation的代码就贴过来的就算了
搜索更多相关主题的帖子: 文件 代码 删除 
2010-07-02 11:07
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:30 
直接format
2010-07-02 13:24
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4940
专家分:30047
注 册:2008-10-15
收藏
得分:30 
我所知道的,能直接 强制删除文件/文件夹的,并且成功率非常高的,
只有一个冰刃.

冰刃所有的操作都是直接在底层操作,包括 调用 NT OS 内核操作,都是自己实现的,不调用内存里现有的模块的........
我想,用VB写这样一个操作, 会很难很难.

我理解的办法是:
1\先用常规办法删除一回.
然后再判断是否删除成功,
如果失败,
2\遍历所有的句柄,找到打这个文件的 模块(程序,DLL) ,强制关闭 连接,再次删除文件.
再判断是否删除成功
如果还失败
3\那么 调用驱动,
直接告诉 NFTS 或FAT 驱动,某个目录下的某项标记来删,并且把这个目录中所有的文件所占的扇区都标记为删除,
然后提示,文件删除成功,需要重启才能确保不出现错误.

方法总结:
1,常规删除.
2\关闭所连接的资源,再删除.
3\绕过OS的缓存及资源,直接读写磁盘.

问题是第二步起,我就不会了.
------------------------------------
关于你所说的 SHFileOperation ,
函数功能描述:文件操作,与 Shell 的动作相同.  
我理解就是 相当于右键删除文件.也会遇到因文件被打开而无法删除的情况.


授人于鱼,不如授人于渔
早已停用QQ了
2010-07-02 15:03
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
收藏
得分:0 
冰刃的强制删除确实不错。
3L所说第2种方法:查找打开这个文件的模块,也只能是针对程序/dll模块,对于普通的文件,比如*.doc,想知道是哪个进程打开了这个文件(人当然会想到是msword.exe啦,只是举个例子),然后结束这个进程。这个好像也挺难。
至于驱动级别的,我只看到过c调用现成的sys驱动的,构造IRP,然后向NTFS.sys发送IRP 。还没看到Vb做的。
难啊。

[ 本帖最后由 jiashie 于 2010-7-2 16:58 编辑 ]
2010-07-02 16:48
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4940
专家分:30047
注 册:2008-10-15
收藏
得分:40 
感觉WINDOWS应该记录了哪个文件被打开,

如果能找到这个记录, 直接改为这个文件没有打开,然后关掉对应的 文件缓冲的 句柄,也应该可以达到 关闭文件的目的吧.

不知道,只是猜测.
反正我不会想到去用VB实现这个问题.

360安全卫士,不是有这么一个DLL,用来删顽固文件的吗?都以至于被病毒用来干掉杀毒软件了.
找个方法,调用它.
不过,好像成功率不是很高.



授人于鱼,不如授人于渔
早已停用QQ了
2010-07-02 17:23
纪永君
Rank: 2
来 自:山东蓬莱,蓬莱祥林
等 级:论坛游民
威 望:1
帖 子:68
专家分:37
注 册:2008-6-27
收藏
得分:0 
我知道,但是,这个程序可以演变成病毒程序!可以将文件硬盘的相关文件删除
也可以将硬盘塞满文件夹等等
命令十分的简单
2010-07-03 18:51
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
收藏
得分:0 
回复 6楼 纪永君
这么牛B?
是别人的程序还是有源代码?
如果有是源代码的话,愿意分享一下不?
2010-07-04 20:48
纪永君
Rank: 2
来 自:山东蓬莱,蓬莱祥林
等 级:论坛游民
威 望:1
帖 子:68
专家分:37
注 册:2008-6-27
收藏
得分:0 
倒也不牛b,这个论坛上的好多的朋友都会的,只要会读写文件操作的命令基本上都知道的
建立文件夹和删除文件夹是一对命令
2010-07-04 21:00
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
收藏
得分:0 
回复 8楼 纪永君
你不会说的是md和rd这两个dos命令吧,老兄。
要是rd能实现强制删除,我也用不着整这个帖子了。
2010-07-05 09:00
纪永君
Rank: 2
来 自:山东蓬莱,蓬莱祥林
等 级:论坛游民
威 望:1
帖 子:68
专家分:37
注 册:2008-6-27
收藏
得分:0 
哈哈哈,vb命令就是vb命令,你难道没有MSDN吗,查一下不就有了吗?
我已经对你说的如此明白了,如果你真的找不到的话,在告诉我好了
2010-07-05 11:27
快速回复:100分求强制删除文件/文件夹的代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034675 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved