WinCE删除文件DeleteFile失败

zhuyf87 2013-01-18 01:24:49
BOOL return_value = DeleteFile(_T("\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip"));

if (!return_value)
{
DWORD error = 0;
error = GetLastError();
}


我的程序中,会使用上面这段代码删除WinCE系统上一些文件。
一般情况下都工作正常,但偶尔会出现有文件删除失败的情况,我在程序中加了日志。
出现删除失败的情况时,我用GetLastError返回错误码,返回的是-1(应该是0xffffffff吧)。
我想通过GetLastError返回的错误码,获知删除失败的原因(被占用?)。
但现在GetLastError的返回值是-1或者说0xffffffff,并不是有效的Windows error code。
我直接手动到WinCE终端上删除这个文件,也弹出窗口,提示“删除文件失败”。
请大家帮我分析一下如果解决这个问题。谢谢。
...全文
313 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
LuciferStar 2013-01-18
  • 打赏
  • 举报
回复
引用 11 楼 schlafenhamster 的回复:
"\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip" 既不是 相对 路径 ".\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip" 又是 绝对路径 "C:\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip"
CE下,这个路径是对的。
schlafenhamster 2013-01-18
  • 打赏
  • 举报
回复
"\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip" 既不是 相对 路径 ".\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip" 又是 绝对路径 "C:\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip"
看不见的裂痕 2013-01-18
  • 打赏
  • 举报
回复
1. DeleteFile如果文件原来就被占用的话,是删除不了的。一般如果一个函数中Create之后直接DeleteFile 是不成功的,我一般直接PostMessage走消息循环来删除 2. 我看楼主用相对路径,可以尝试下用绝对路径来测试下 3. DeleteFile是不能删除只读文件的,需要使用SHFileOperation来操作
快乐鹦鹉 2013-01-18
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/wxhanshan/2990555 百度一下,看看有没有强制删除文件的方法吧
zhuyf87 2013-01-18
  • 打赏
  • 举报
回复
引用 7 楼 sha_jinhao 的回复:
引用 5 楼 zhuyf87 的回复:引用 4 楼 sha_jinhao 的回复:我想通过GetLastError返回的错误码,获知删除失败的原因(被占用?)。 呵呵。大侠勿笑我,请指点。我是看到msdn里面说如果DeleteFile失败,调用GetLastError获取错误码。 才这么做的。-_-我笑的是 你知道问题所在 还来提问! sorry、 ……
我是想解决问题。这个文件必须被删掉。其实我是写的一个ActiveX插件,网站那边的同事调用我ActiveX里面删除文件的接口。一定要保证这个文件必须删掉(由于业务上的需要)。我在ActiveX里面用的是Remote API。 即使我知道原因,但我现在没法解决掉。请大家出出主意,比如如何强制删除被占用的文件?我搜了一下,很多都是vc删除pc上的被占用文件。我现在想强制删除wince上的被占用文件,而且用的是RAPI。我觉得很难解决。可能要换别的思路了。唉。
jimette 2013-01-18
  • 打赏
  • 举报
回复
引用 5 楼 zhuyf87 的回复:
引用 4 楼 sha_jinhao 的回复:我想通过GetLastError返回的错误码,获知删除失败的原因(被占用?)。 呵呵。大侠勿笑我,请指点。我是看到msdn里面说如果DeleteFile失败,调用GetLastError获取错误码。 才这么做的。-_-
我笑的是 你知道问题所在 还来提问! sorry、
zhuyf87 2013-01-18
  • 打赏
  • 举报
回复
引用 3 楼 LuciferStar 的回复:
CE下比较奇葩的。文件路径要绝对路径。没有CurrentDirectory的概念。
是的。WinCE没有当前目录的概念,也没有C盘,D盘这些。 全部都是挂在到根目录,全路径就是\\Dic\\xx.txt这样。
zhuyf87 2013-01-18
  • 打赏
  • 举报
回复
引用 4 楼 sha_jinhao 的回复:
我想通过GetLastError返回的错误码,获知删除失败的原因(被占用?)。
呵呵。大侠勿笑我,请指点。我是看到msdn里面说如果DeleteFile失败,调用GetLastError获取错误码。 才这么做的。-_-
jimette 2013-01-18
  • 打赏
  • 举报
回复
我想通过GetLastError返回的错误码,获知删除失败的原因(被占用?)。
LuciferStar 2013-01-18
  • 打赏
  • 举报
回复
CE下比较奇葩的。文件路径要绝对路径。没有CurrentDirectory的概念。
zhuyf87 2013-01-18
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
可能被某些进程占用了
嗯。最大的可能就是被占用了。因为我将wince机器重新启动,就可以删除掉了。 但现在我不知道如何能解决这个问题。 也不知道是什么程序占用了这个文件。
快乐鹦鹉 2013-01-18
  • 打赏
  • 举报
回复
可能被某些进程占用了
《疯狂XML讲义》主要以XML为核心,深入地介绍了XML的各种相关知识。《疯狂XML讲义》作为疯狂Java体系图书之一,依然保持该体系图书系统、全面的特点:不仅详细介绍了XML,文档的各种知识,还通过案例示范了实际开发中如何应用XML知识。 《疯狂XML讲义》主要分为五个部分。第一部分介绍了XML、DTD、XML Schema等基础知识,这些知识主要教读者如何定义有效的XML文档,这部分内容是深入学习后面知识的基础,也是每个使用XML的开发者都应该掌握的基础。第二部分介绍了CSS、XSLT和XPath等知识,通过使用CSS或XSLT,可直接将XML文档当成视图技术。第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4i和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过X Query可以查询XML,文档中的数据,就像使用SQL查询关系数据库的数据一样。第四部分介绍了Web Services和CXF,其中CXF是Java领域的主流Web Services框架,简单易用。第五部分则提供了两个综合性案例:基于XML的电子公告系统和电子拍卖系统,让读者将前面所学应用到实际项目中。尤其是电子拍卖系统,它是一个包含5个表,表之间具有复杂关联映射的系统,该案例采用目前最流行、最规范的轻量级Java EE架构,将整个应用分为领域对象层、DAO层和业务逻辑层,然后用CXF将业务逻辑组件包装成Web Services,从而可以将现有的Java EE项目与其他平台的、其他语言的异构项目进行整合,具有极好的指导价值和借鉴意义。 《疯狂XML讲义》大部分章节后都提供了相应的编程习题,供开发者巩固所学,将理论融入实际开发之用。关于这些编程习题的解题思路和参考答案可登录http://www.crazyit.org获取。 《疯狂XML讲义》是疯狂Java体系丛书之一,学习《疯狂XML讲义》无须任何XMI,基础,但DOM、SAX、dora4i、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧