这段删除文件的代码是不是有问题?
我的程序需要判断一个目录是否存在,如果存在,需要删除该目录及其下面的文件,然后新建该目录,然后再往里面写文件。
使用了以下的代码,结果使用中发现很不稳定:
AnsiString tmpPath=ExtractFilePath(Application->ExeName) + "\\新建文件夹";
if(!Sysutils::DirectoryExists(tmpPath))
{
CreateDir(tmpPath);
Sleep(500);
}
else
{
//SHFILEOpStruct
AnsiString DelFile=tmpPath;
TSHFileOpStruct OpStruct;
//StrPCopy(DelFile,File_Name);
OpStruct.hwnd=Handle;
OpStruct.wFunc=FO_DELETE;
OpStruct.pFrom=DelFile.c_str();
OpStruct.pTo=NULL;
OpStruct.fFlags=FOF_NOCONFIRMATION;
OpStruct.hNameMappings=NULL;
OpStruct.lpszProgressTitle=NULL;
SHFileOperation(&OpStruct);
Sleep(1000);
//得创建目录
CreateDir(tmpPath);
}
有时候老提示:无法删除文件:无法读取文件或磁盘
但有时候能够删掉,请问是怎么回事?
我试了好多次,好像路径中包含英文时容易出现这问题,英文路径几乎没有出现过