FindNext(sr)遍历目录下的文件,win2000没有问题,win2003有问题,请教!!急
if FindFirst(filedir+'\*.*', faAnyFile, sr) = 0 then
begin
repeat
if (sr.Attr and faDirectory)=0 then
begin
tempAttri:=copy(sr.Name,LastDelimiter('.',sr.Name)+1,length(sr.Name));
if tempAttri = 'zip' then
begin
temp:='x '+filedir+'\'+sr.Name+' '+filedir+'\';
ShellExecute(handle,nil,'winrar',pchar(temp),nil,SW_HIDE);//****
sleep(5000);
deleteFile(filedir+'\'+sr.Name);
Continue ;
end;
parseAutoNLXMLToDb(filedir+'\'+sr.Name);
inc(filenum);
DateTimeToString( dirctDir,'yyyymmdd',now);
if not DirectoryExists('.\bak_nl\'+dirctDir) then
if not CreateDir('.\bak_nl\'+dirctDir) then
DisplayMessage(Format('创建备份文件夹错误!%s',['.\bak_nl\'+dirctDir]));
CopyFileTo(filedir+'\'+sr.Name,'.\bak_nl\'+dirctDir+'\'+sr.Name);
deleteFile(filedir+'\'+sr.Name);
end; //end if
until FindNext(sr) <> 0; <--------------在该处,win2000下会寻找//***解压后的文件,但在win2003下结束遍历。假定当前目录下只有一个压缩文件。
FindClose(sr);
end; //end if findfirst
这是一个在当前目录下,搜寻压缩文件,解压缩(解压缩到当前目录)后,处理的流程。在win2000下没有问题,win2003下解压缩后,不能继续FindNext(sr)到解出来的文件。哪位碰到过类似情况?高手帮帮我!谢了