各位大虾,问一个初级问题。为什么删除不了文件?代码如下:(100分)

  • 主题发起人 翱翔雨天
  • 开始时间

翱翔雨天

Unregistered / Unconfirmed
GUEST, unregistred user!
if(DirectoryExists(Dir))
{
filecount=GetFile(Dir,MSCFileList);
filecount=0;
for(i=0;i<MSCFileList->Count;i++)
{
if(FileExists(MSCFileList->Strings))
{
Label2->Caption=MSCFileList->Strings;
Label4->Caption=MSCFileList->Strings;
StatusBar1->SimpleText="正在处理:"+MSCFileList->Strings+"...";
MSCFile->Clear();
MSCFile->LoadFromFile(MSCFileList->Strings);
state=TraceMSCData(MSCFile,OutPath,MSCFileList->Strings);
if(state==5)
{
WorkListBox->Items->Add("文件 "+ExtractFileName(MSCFileList->Strings)+" 转换完毕");
filecount++;
}
}
}
StatusBar1->SimpleText="处理完毕。共转换了"+IntToStr(MSCFileList->Count)+"个文件,"+IntToStr(filecount)+"个文件成功。";
//-----------------------删除临时文件-------------------------------
if(FindFirst(Dir+"//*.*",faAnyFile,SearchRec)==0)
{
if(DeleteFile(Dir+"//"+SearchRec.Name))
ShowMessage(10);
FindClose(SearchRec);
}
while(FindNext(SearchRec)==0)
{
DeleteFile(Dir+"//"+SearchRec.Name);
FindClose(SearchRec);
}
RemoveDir(Dir);
}
else
{
Application->MessageBox("目的路径有问题,请重新选择!","MSC DataTrace",MB_ICONWARNING);
}
//-----------------------------------------------------------------
delete MSCFile;
 
[:(][:(]各位帮帮忙呀,我也很困惑!
 
是不是文件處理後沒有關閉啊
 
"//*.*"改成"/*.*"试试!
 
不是呀,目录里面的文件已经全删除了,就目录删除不了。
 
把findclose放在removedir前试试
 
RemoveDir()
  原型:extern PACKAGE bool __fastcall RemoveDir(const AnsiString Dir);
  功能:删除目录,如果成功返回true,否则返回false
  参数:Dir:要删除的目录名
  例:if(DiectoryExists("ASM"))RemoveDir("ASM");
 
为什么这种坡问题总让我碰上,各位辛苦了,我觉得是资源没释放的问题,可我不知道,是那里占用了。
 
顶部