ソースを参照

Remove the Get/SetCurrentDir calls as they are no longer needed.

Martijn Laan 2 ヶ月 前
コミット
ab1463ce46
1 ファイル変更21 行追加25 行削除
  1. 21 25
      Projects/Src/Compression.SevenZipDecoder.pas

+ 21 - 25
Projects/Src/Compression.SevenZipDecoder.pas

@@ -289,32 +289,28 @@ begin
 
   LogFmt('Extracting 7-Zip archive %s to %s. Full paths? %s', [ArchiveFileName, DestDir, SYesNo[FullPaths]]);
 
-  var SaveCurDir := GetCurrentDir;
-  if not ForceDirectories(DisableFsRedir, DestDir) or not SetCurrentDir(DestDir) then
+  if not ForceDirectories(DisableFsRedir, DestDir) then
     raise Exception.Create(FmtSetupMessage(msgErrorExtractionFailed, ['-1']));
-  try
-    State.DisableFsRedir := DisableFsRedir;
-    State.ExpandedArchiveFileName := PathExpand(ArchiveFileName);
-    State.ExpandedDestDir := AddBackslash(PathExpand(DestDir));
-    State.LogBuffer := '';
-    State.ExtractedArchiveName := PathExtractName(ArchiveFileName);
-    State.OnExtractionProgress := OnExtractionProgress;
-    State.LastReportedProgress := 0;
-    State.LastReportedProgressMax := 0;
-    State.Aborted := False;
-
-    var Res := IS_7zDec(PChar(ArchiveFileName), FullPaths);
-
-    if State.LogBuffer <> '' then
-      Log(State.LogBuffer);
-
-    if State.Aborted then
-      raise Exception.Create(SetupMessages[msgErrorExtractionAborted])
-    else if Res <> 0 then
-      raise Exception.Create(FmtSetupMessage(msgErrorExtractionFailed, [Res.ToString]))
-  finally
-    SetCurrentDir(SaveCurDir);
-  end;
+
+  State.DisableFsRedir := DisableFsRedir;
+  State.ExpandedArchiveFileName := PathExpand(ArchiveFileName);
+  State.ExpandedDestDir := AddBackslash(PathExpand(DestDir));
+  State.LogBuffer := '';
+  State.ExtractedArchiveName := PathExtractName(ArchiveFileName);
+  State.OnExtractionProgress := OnExtractionProgress;
+  State.LastReportedProgress := 0;
+  State.LastReportedProgressMax := 0;
+  State.Aborted := False;
+
+  var Res := IS_7zDec(PChar(ArchiveFileName), FullPaths);
+
+  if State.LogBuffer <> '' then
+    Log(State.LogBuffer);
+
+  if State.Aborted then
+    raise Exception.Create(SetupMessages[msgErrorExtractionAborted])
+  else if Res <> 0 then
+    raise Exception.Create(FmtSetupMessage(msgErrorExtractionFailed, [Res.ToString]));
 end;
 
 end.