перенос в RAR
Модератор: motyara
-
- Охотник за багами
- Сообщения: 20
- Зарегистрирован: Пт фев 29, 2008 1:39 pm
перенос в RAR
При переносе в RAR мышью или по F6 файл не удаляется, с ZIPом все работает
-
- Автор программы
- Сообщения: 3432
- Зарегистрирован: Пт окт 12, 2007 3:26 pm
-
- Сообщения: 405
- Зарегистрирован: Чт ноя 08, 2007 9:29 am
- Откуда: Москва
Re:
Архиватор же должен возвращать код возврата операции.... Кроме того, можно проверить физическое расположение архива после создания (предполагаем, что если пользователь отменил создание архива или архив не может быть создан по какой-либо причине, то он не будет создан)....Max Diesel писал(а):Полагаю что также обстоят дела и с архиватором ACE. Причина в том, что программа не получает от архиватора никакого уведомления о том, что файлы успешно добавлены в архив, а при такой постановке вопроса может случиться так, что файлы в архив по какой-то причине добавлены не будут, но будут удалены.
С уважением, Андрей.
-
- Автор программы
- Сообщения: 3432
- Зарегистрирован: Пт окт 12, 2007 3:26 pm
Подозреваю что внешний архиватор никому ничего не должен... он не функция, он не вызывается как функция и не работает как функция, а потому ничего не возвращает (во всяком случае такой принцип общения с архиватором реализован в Unreal Commander). Впрочем, действительно можно после выполнения операции (которая кстати не уведомляет программу о том, что она закончилась, так как ожидание окончания работы внешнего архиватора пока еще не установлено) дополнительной функцией проверить какие файлы были-таки распакованы/запакованы, а какие были пропущены при распаковке/запаковке, но будет ли такое действие рациональным? (вопрос поставлен не в плане мнения пользователей о наличии такой функции в программе, а в плане программирования такого процесса) Считаю что нет.
-
- Сообщения: 405
- Зарегистрирован: Чт ноя 08, 2007 9:29 am
- Откуда: Москва
Re:
Если такой принцип общения реализован в Unreal Commander, то это не означает, что внешний архиватор (далее пишу на примере RAR) "ничего не возвращает".... Вообще-то под словом "должен" я имел в виду "насколько мне известно"... И память мне не изменила... Если запускать в отдельном потоке внешний архиватор и ждать его завершения, то таки можно дождаться кода его завершения... Я надеюсь, Вам известно как... Если нет, могу скинуть пример ... Коды возврата указаны в help к Rar......Max Diesel писал(а):Подозреваю что внешний архиватор никому ничего не должен... он не функция, он не вызывается как функция и не работает как функция, а потому ничего не возвращает (во всяком случае такой принцип общения с архиватором реализован в Unreal Commander). Впрочем, действительно можно после выполнения операции (которая кстати не уведомляет программу о том, что она закончилась, так как ожидание окончания работы внешнего архиватора пока еще не установлено) дополнительной функцией проверить какие файлы были-таки распакованы/запакованы, а какие были пропущены при распаковке/запаковке, но будет ли такое действие рациональным? (вопрос поставлен не в плане мнения пользователей о наличии такой функции в программе, а в плане программирования такого процесса) Считаю что нет.
Кроме того, а почему нельзя вставить код переноса в Rar, чтобы он сам удалял в случае успешной архивации!?
С уважением, Андрей.
-
- Автор программы
- Сообщения: 3432
- Зарегистрирован: Пт окт 12, 2007 3:26 pm
-
- Сообщения: 405
- Зарегистрирован: Чт ноя 08, 2007 9:29 am
- Откуда: Москва
Re:
Извините, давно не программирую.... но в поисковиках все есть...Max Diesel писал(а):Хм... я удивлен. Действительно про "коды возврата" я до этого момента был не в курсе. Полагаю пример лишним не будет, если уж он есть (с первого запроса поисковая система его не выдала).
Тут про запуск и ожидание: http://www.codenet.ru/progr/delphi/stat/startw.php.
Тут про CreateProcess и получение кода возврата: http://demiurgjr.narod.ru/Documents/Win ... nformation (см. GetExitCodeProcess).
Судя по UC, примера запуска в отдельном потоке писать не надо!
Я Вам скажу больше, в последнее время появилось столько WinAPI, что запущенным приложением можно полностью управлять, как своей дополнительной формой... Некоторые вири и зловреды так и работают, максируясь под известное приложение (т.е. чужими руками творят зло )....
С уважением, Андрей.