Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Обновление программы  [new]
Артёмs
Member

Откуда:
Сообщений: 46
    FZip := TZipFile.Create;
    FZip.ExtractZipFile(ExtractFilePath(Application.ExeName) + 'Update.zip', '');
    FZip.Free;

    DeleteFile(PWideChar(ExtractFilePath(Application.ExeName) + 'Update.zip'));

    if (FileExists(ExtractFilePath(Application.ExeName) + 'SL.EXE')= True) then
      ShellExecute(Self.Handle, 'open', PWideChar(ExtractFilePath(Application.ExeName) + 'SL.EXE'), Nil, Nil, SW_SHOW);


Если архив большой, то программа дождётся пока он распакуется и потом удалит? Нет смысла писать код, который будет проверять распаковался ли архив?

Сообщение было отредактировано: 23 фев 21, 21:00
23 фев 21, 21:06    [22285352]     Ответить | Цитировать Сообщить модератору
 Re: Обновление программы  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52451

А что по этому поводу говорит документация на TZipFile.ExtractZipFile()?..

Posted via ActualForum NNTP Server 1.5

23 фев 21, 21:08    [22285354]     Ответить | Цитировать Сообщить модератору
 Re: Обновление программы  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12572
1. ExtractZipFile статический метод
2. Я бы не игнорировал второй параметр метода ExtractZipFile
3. Писать
if Func() = True then
особого смысла нет
23 фев 21, 22:03    [22285371]     Ответить | Цитировать Сообщить модератору
 Re: Обновление программы  [new]
x1ca4064
Member

Откуда:
Сообщений: 1235
Судя по коду:
Артёмs

    FZip := TZipFile.Create;
    FZip.ExtractZipFile(ExtractFilePath(Application.ExeName) + 'Update.zip', '');
    FZip.Free;


Вы уже допускаете, что метод ExtractZipFile не являтся асинхронным, т.е. выполняется в том же потоке, значит удаление будет выполнено после FZip.Free.
Если этот код является фрагментом программы sl.exe, то ExtractZipFile должен выдать исключение.

Сообщение было отредактировано: 23 фев 21, 22:19
23 фев 21, 22:25    [22285380]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить