怎么强制删除有共享冲突的文件?(100分)

  • 主题发起人 主题发起人 yong2000
  • 开始时间 开始时间
Y

yong2000

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么强制删除有共享冲突的文件?能否给出代码,谢谢!
 
只有到0层了。。
 
hubdog中的文章
在Windows NT中覆盖或删除正在使用的文件
这个函数就是<> MoveFileEx <>
这个函数充许我们对一个指定的文件或文件夹重命名. 但当我们指定它的dwFlags
参数为MOVEFILE_DELAY_UNTIL_REBOOT(只能用于Windows NT 4/2000)后, 它就将改写
注册表,在Windows重新启动后此文件就将被覆盖或删除.
用法:
MoveFileEx(ExistingFN, NewFN, MOVEFILE_REPLACE_EXISTING or
MOVEFILE_DELAY_UNTIL_REBOOT
说明:
参数ExistingFN 指向一个以空字符结尾的字符串,此字符串即是待改变的文件或
文件夹。
参数NewFN 也是一个指向另一个空字符结尾的字符串,不同的是它表明的是新的文
件或文件夹的名称。
标志MOVEFILE_REPLACE_EXISTING 告诉函数如果ExistingFN所指的文件或文件夹已
经存在则覆盖它。如果NewFN指向nil,则 ExistingFN 所指的文件或文件夹就将被删除。

举例:
* 覆盖一个使用中的文件:
MoveFileEx('c:/winnt/system32/kernel32.dll',
'd:/winnt.bak/system32/kernel32.dll',
MOVEFILE_REPLACE_EXISTING or MOVEFILE_DELAY_UNTIL_REBOOT
* 删除一个使用中的文件:
MoveFileEx('c:/winnt/system32/kernel32.dll', nil,
MOVEFILE_REPLACE_EXISTING or MOVEFILE_DELAY_UNTIL_REBOOT
 
如果是在WIN98中呢?
 
可以修改98安装目录下的一个Wininit.ini文件,如果没有,就创建一个
内容如下:
[rename]
nul=c:/windows/system/kernel32.dll
不过也是在重启后文件才删除掉的
 
老办法啦。
需要重启。
 
98下删除共享冲突的文件就没有办法吗,或是不需要重启动就不行吗?
 
查找使用文件的进程,然后杀掉它,不就能删除文件了吗,不过。。。。。。。
 
DeleteFile
说明
删除指定文件
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpFileName String,欲删除文件的名字
注解
使用这个函数要小心——即使文件当前正由一个应用程序打开,该函数也会将其删除


 
试过DeleteFile
好象不行,有具体例子吗?
 
在这里好象有一篇文章讲这个的,你查查看
http://asp.7i24.com/netcool/laoluo/
 
方法:
进入控制面板->“服务”->关闭共享服务
 
后退
顶部