diff --git a/installer/installer/AMXInstaller.exe b/installer/installer/AMXInstaller.exe index 5fb34972..cb9e505b 100755 Binary files a/installer/installer/AMXInstaller.exe and b/installer/installer/AMXInstaller.exe differ diff --git a/installer/installer/UnitfrmMain.pas b/installer/installer/UnitfrmMain.pas index 55d303f3..54703523 100755 --- a/installer/installer/UnitfrmMain.pas +++ b/installer/installer/UnitfrmMain.pas @@ -651,21 +651,28 @@ begin // ... change to / and create all the directories ... CurNode := nil; if (Path <> '/') then begin - IdFTP.ChangeDir('/'); - with GetAllDirs do begin - for i := 0 to Count -1 do begin - if (Assigned(CurNode)) then - trvDirectories.Items.AddChild(trvDirectories.Items.Add(nil, Strings[i]), 'Scanning...') - else begin - CurNode := trvDirectories.Items.Add(nil, Strings[i]); - trvDirectories.Items.AddChild(CurNode, 'Scanning...'); - if (Pos('/' + CurNode.Text + '/', Path) = 0) then - CurNode := nil; - end + try + IdFTP.ChangeDir('/'); + with GetAllDirs do begin + for i := 0 to Count -1 do begin + if (Assigned(CurNode)) then + trvDirectories.Items.AddChild(trvDirectories.Items.Add(nil, Strings[i]), 'Scanning...') + else begin + CurNode := trvDirectories.Items.Add(nil, Strings[i]); + trvDirectories.Items.AddChild(CurNode, 'Scanning...'); + if (Pos('/' + CurNode.Text + '/', Path) = 0) then + CurNode := nil; + end + end; + Free; end; - Free; + IdFTP.ChangeDir(Path); + except + if (IdFTP.Connected) then + IdFTP.ChangeDir(Path) + else + IdFTP.Connect; end; - IdFTP.ChangeDir(Path); end; // ... find directories in start path ... if eStr.Count <> 0 then begin