我所知道的,能直接 强制删除文件/文件夹的,并且成功率非常高的,
只有一个冰刃.
冰刃所有的操作都是直接在底层操作,包括 调用 NT OS 内核操作,都是自己实现的,不调用内存里现有的模块的........
我想,用VB写这样一个操作, 会很难很难.
我理解的办法是:
1\先用常规办法删除一回.
然后再判断是否删除成功,
如果失败,
2\遍历所有的句柄,找到打这个文件的 模块(程序,DLL) ,强制关闭 连接,再次删除文件.
再判断是否删除成功
如果还失败
3\那么 调用驱动,
直接告诉 NFTS 或FAT 驱动,某个目录下的某项标记来删,并且把这个目录中所有的文件所占的扇区都标记为删除,
然后提示,文件删除成功,需要重启才能确保不出现错误.
方法总结:
1,常规删除.
2\关闭所连接的资源,再删除.
3\绕过OS的缓存及资源,直接读写磁盘.
问题是第二步起,我就不会了.
------------------------------------
关于你所说的 SHFileOperation ,
函数功能描述:文件操作,与 Shell 的动作相同.
我理解就是 相当于右键删除文件.也会遇到因文件被打开而无法删除的情况.