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的概念。
[解决办法]
我笑的是 你知道问题所在 还来提问!
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"
[解决办法]
CE下,这个路径是对的。