浏览代码

Fix for bug ID #33150

git-svn-id: trunk@38304 -
michael 7 年之前
父节点
当前提交
6df643f433
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      packages/paszlib/src/zipper.pp

+ 8 - 4
packages/paszlib/src/zipper.pp

@@ -1850,7 +1850,8 @@ Var
   ZVersionReqd : Word;
   ZBitFlag : Word;
   ZipStream : TStream;
-  TmpFileName : String;
+  TmpFileName, Start : String;
+  I : Integer;
 
 Begin
   OpenInput(Item);
@@ -1860,9 +1861,12 @@ Begin
       ZipStream:=TMemoryStream.Create
     else
       begin
-      TmpFileName:=ChangeFileExt(FFileName,'.tmp');
-      if TmpFileName=FFileName then
-        TmpFileName:=TmpFileName+'.tmp';
+      Start := ChangeFileExt(FFileName, '');
+      I := 0;
+      repeat
+        TmpFileName := Format('%s%.5d.tmp', [Start, I]);
+        Inc(I);
+      until not FileExists(TmpFileName);
       ZipStream:=TFileStream.Create(TmpFileName,fmCreate);
       end;
     Try