怪了,为什么 DeleteFile 不能删除只读文件呢
如题:
不知道哪位大侠知道哪个函数可以实现彻底删除文件,不关它只读不只读的,
如果没有这样的函数,是不是要修改文件属性后,再DeleteFile
谢谢啦
问题点数:80、回复次数:9Top
1 楼xlzxlich(阳光)回复于 2005-06-04 04:03:46 得分 4
If an application attempts to delete a file that does not exist, the DeleteFile function fails. If the file is a read-only file, the function fails with ERROR_ACCESS_DENIED. To delete a read-only file, you must first remove the read-only attribute.
Top
2 楼CodeKey()回复于 2005-06-04 08:53:59 得分 0
只有修改属性这么一种办法吗,或许用 DeleteFile 一定要这样,
但是有没有更好的函数呢Top
3 楼ShiGang(Sucess)回复于 2005-06-04 09:19:31 得分 4
可以的!但在刪除前,你要確保有沒有程式將打開了,如果打開了,必須先關閉后才能刪除.Top
4 楼LCBoy()回复于 2005-06-04 09:28:44 得分 36
SHFileOperation
Top
5 楼CodeKey()回复于 2005-06-04 10:00:19 得分 0
再问:DeleteFile 删除之后能不能恢复呢,
比如还进行了其他拷贝、删除之类Top
6 楼CodeKey()回复于 2005-06-04 10:04:01 得分 0
看起来这问题并不是那么简单了,我把贴子加了点分Top
7 楼huwei001982(凶猛的小狗)回复于 2005-06-04 10:19:34 得分 0
楼上的不是把 MSDN 贴出来一部分了吗?
难道楼主没有看??
DeleteFile 操作只读文件时会返回ERROR_ACCESS_DENIED错误, 想删除的话必须先将
ReadOnly属性去掉Top
8 楼huwei001982(凶猛的小狗)回复于 2005-06-04 10:32:12 得分 36
SHFILEOPSTRUCT op;
memset(&op, 0, sizeof(op));
op.pFrom = "c:\\text.ini";
op.fFlags = FOF_ALLOWUNDO;
op.wFunc = FO_DELETE;
if (SHFileOperation(&op) != 0)
{
// delete error
}Top
9 楼CodeKey()回复于 2005-06-04 11:21:47 得分 0
谢谢 huwei001982(編程浪子) ( ) 信誉:105
刚刚有个问题你也帮我解决了,再次感谢!
请问您是否知道
DeleteFile 删除之后能不能恢复呢,
比如还进行了其他拷贝、删除之类Top




