перенос в RAR

Нашли баг? Воспользуйтесь поиском чтобы убедиться что его не нашли до вас и если он не упоминается добавьте его описание (желательно пошаговое).
Чем для автора программы отличаются баги, недоработки и фичи.

Модератор: motyara

Ответить
Аватара пользователя
Uuux
Охотник за багами
Сообщения: 20
Зарегистрирован: Пт фев 29, 2008 1:39 pm

перенос в RAR

Сообщение Uuux »

При переносе в RAR мышью или по F6 файл не удаляется, с ZIPом все работает
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

Полагаю что также обстоят дела и с архиватором ACE. Причина в том, что программа не получает от архиватора никакого уведомления о том, что файлы успешно добавлены в архив, а при такой постановке вопроса может случиться так, что файлы в архив по какой-то причине добавлены не будут, но будут удалены.
avmaksimov
Сообщения: 405
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва
Контактная информация:

Re:

Сообщение avmaksimov »

Max Diesel писал(а):Полагаю что также обстоят дела и с архиватором ACE. Причина в том, что программа не получает от архиватора никакого уведомления о том, что файлы успешно добавлены в архив, а при такой постановке вопроса может случиться так, что файлы в архив по какой-то причине добавлены не будут, но будут удалены.
Архиватор же должен возвращать код возврата операции.... Кроме того, можно проверить физическое расположение архива после создания (предполагаем, что если пользователь отменил создание архива или архив не может быть создан по какой-либо причине, то он не будет создан)....
С уважением, Андрей.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

Подозреваю что внешний архиватор никому ничего не должен... он не функция, он не вызывается как функция и не работает как функция, а потому ничего не возвращает (во всяком случае такой принцип общения с архиватором реализован в Unreal Commander). Впрочем, действительно можно после выполнения операции (которая кстати не уведомляет программу о том, что она закончилась, так как ожидание окончания работы внешнего архиватора пока еще не установлено) дополнительной функцией проверить какие файлы были-таки распакованы/запакованы, а какие были пропущены при распаковке/запаковке, но будет ли такое действие рациональным? (вопрос поставлен не в плане мнения пользователей о наличии такой функции в программе, а в плане программирования такого процесса) Считаю что нет.
avmaksimov
Сообщения: 405
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва
Контактная информация:

Re:

Сообщение avmaksimov »

Max Diesel писал(а):Подозреваю что внешний архиватор никому ничего не должен... он не функция, он не вызывается как функция и не работает как функция, а потому ничего не возвращает (во всяком случае такой принцип общения с архиватором реализован в Unreal Commander). Впрочем, действительно можно после выполнения операции (которая кстати не уведомляет программу о том, что она закончилась, так как ожидание окончания работы внешнего архиватора пока еще не установлено) дополнительной функцией проверить какие файлы были-таки распакованы/запакованы, а какие были пропущены при распаковке/запаковке, но будет ли такое действие рациональным? (вопрос поставлен не в плане мнения пользователей о наличии такой функции в программе, а в плане программирования такого процесса) Считаю что нет.
Если такой принцип общения реализован в Unreal Commander, то это не означает, что внешний архиватор (далее пишу на примере RAR) "ничего не возвращает".... Вообще-то под словом "должен" я имел в виду "насколько мне известно"... И память мне не изменила... Если запускать в отдельном потоке внешний архиватор и ждать его завершения, то таки можно дождаться кода его завершения... Я надеюсь, Вам известно как... Если нет, могу скинуть пример :)... Коды возврата указаны в help к Rar......
Кроме того, а почему нельзя вставить код переноса в Rar, чтобы он сам удалял в случае успешной архивации!?
С уважением, Андрей.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

Хм... я удивлен. Действительно про "коды возврата" я до этого момента был не в курсе. Полагаю пример лишним не будет, если уж он есть (с первого запроса поисковая система его не выдала).
avmaksimov
Сообщения: 405
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва
Контактная информация:

Re:

Сообщение avmaksimov »

Max Diesel писал(а):Хм... я удивлен. Действительно про "коды возврата" я до этого момента был не в курсе. Полагаю пример лишним не будет, если уж он есть (с первого запроса поисковая система его не выдала).
Извините, давно не программирую.... но в поисковиках все есть...
Тут про запуск и ожидание: http://www.codenet.ru/progr/delphi/stat/startw.php.
Тут про CreateProcess и получение кода возврата: http://demiurgjr.narod.ru/Documents/Win ... nformation (см. GetExitCodeProcess).
Судя по UC, примера запуска в отдельном потоке писать не надо! :)
Я Вам скажу больше, в последнее время появилось столько WinAPI, что запущенным приложением можно полностью управлять, как своей дополнительной формой... Некоторые вири и зловреды так и работают, максируясь под известное приложение (т.е. чужими руками творят зло :( )....
С уважением, Андрей.
Ответить