首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

WinCE删除文件DeleteFile失败解决方案

2014-06-25 
WinCE删除文件DeleteFile失败BOOL return_value = DeleteFile(_T("\\UPLOAD\\手持上传数据_20130118111800

WinCE删除文件DeleteFile失败

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终端上删除这个文件,也弹出窗口,提示“删除文件失败”。
请大家帮我分析一下如果解决这个问题。谢谢。
[解决办法]
可能被某些进程占用了
[解决办法]
CE下比较奇葩的。文件路径要绝对路径。没有CurrentDirectory的概念。
[解决办法]
引用:
引用:我想通过GetLastError返回的错误码,获知删除失败的原因(被占用?)。

呵呵。大侠勿笑我,请指点。我是看到msdn里面说如果DeleteFile失败,调用GetLastError获取错误码。
才这么做的。-_-
我笑的是  你知道问题所在 还来提问!

sorry、
[解决办法]
http://download.csdn.net/detail/wxhanshan/2990555
百度一下,看看有没有强制删除文件的方法吧
[解决办法]
1.
DeleteFile如果文件原来就被占用的话,是删除不了的。一般如果一个函数中Create之后直接DeleteFile
是不成功的,我一般直接PostMessage走消息循环来删除

2.
我看楼主用相对路径,可以尝试下用绝对路径来测试下

3.
DeleteFile是不能删除只读文件的,需要使用SHFileOperation来操作
[解决办法]
"\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip"
既不是 相对 路径 ".\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip"
又是 绝对路径 "C:\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip"
[解决办法]
引用:
"\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip"
既不是 相对 路径 ".\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip"
又是 绝对路径 "C:\\UPLOAD\\手持上传数据_20130118111800_470370360369.zip"

CE下,这个路径是对的。

热点排行