Страница 3 из 12

1

Добавлено: Вс окт 28, 2007 19:26
alexey65536
Проблема: при распаковке из ТС запароленного архива RAR, где пароль содержит в себе пробел(ы) - архив не распаковывается (видимо, пароль из-за пробелов передается неверно).
Возможно, это вопрос к авторам unrar.dll, хотя WinRAR распаковывает такие архивы успешно.

Добавлено: Вс окт 28, 2007 20:23
DrShark
alexey65536 писал(а):Проблема: при распаковке из ТС запароленного архива RAR, где пароль содержит в себе пробел(ы) - архив не распаковывается (видимо, пароль из-за пробелов передается неверно).
Возможно, это вопрос к авторам unrar.dll, хотя WinRAR распаковывает такие архивы успешно.
Баг не подтверждаю.
Для распаковки запароленных архивов должен использоватся внешний распаковщик, т.е. Winrar.exe. Проверь, правильно ли прописан путь к Winrar.exe в диалоге настроек архиваторов в TC.
з.ы. поддержка запароленных архивов через unrar.dll, вероятнее всего, будет в TC 7.5.

2

Добавлено: Вс окт 28, 2007 20:27
alexey65536
Путь к винрару прописан. Могу скинуть на мыло архив с известным паролем, который не распаковывается через ТС.

Добавлено: Вс окт 28, 2007 20:32
DrShark
Попробуй взять путь к Winrar.exe в кавычки.
Если не поможет, выложи файл на рапиду, посмотрим.

Добавлено: Вс окт 28, 2007 20:36
alexey65536
Кавычки не помогли.
Ссылка на файл: _http://rapidshare.com/files/65822338/BWMeter_3.3.0.rar.html
Пароль:
Rostov`s Blog

Добавлено: Вс окт 28, 2007 20:53
DrShark
Дело не в пробелах, а в этом знаке:
`

3

Добавлено: Вс окт 28, 2007 20:55
alexey65536
А чем ему знак-то не угодил? Ведь чистый винрар распаковывает, а вызываемый из ТС - фиг..:(

Добавлено: Вс окт 28, 2007 20:57
DrShark
Я ещё проверю TC на совместимость с другими знаками, потом багрепорт на оф. форум отправлю. Подозреваю, что проблемы возникнут и с юникодными паролями.

Добавлено: Пт ноя 23, 2007 17:04
DrShark
2alexey65536
Проблема, вероятно, всё же с пробелами, хотя тот архив вообще странный какой-то :)
Проблема с распаковкой подобных архивов должна решится в TC 7.5, т.к. тогда будет использоватся dll для распаковки с поддержкой зашифрованных архивов. Вот пояснение Гислера:
Using a space in the password is a very bad idea. Why? Command line
parameters are passed to RAR separated by spaces, so RAR will think
that only the first part up to the space is the password, and the rest are
some parameters!
С упаковкой также есть свои ньюансы: если в пароле используется несколько слов, разделённых пробелами, то WinRar покажет окно с "ошибкой упаковки", но в итоге архив с паролем будет правильным.
Если в качестве пароля используется пробел, то пароль нужно вводить четырежды - дважды в диалоге TC и ещё дважды в диалоге WinRar.

Добавлено: Пт ноя 23, 2007 17:19
Alextp
DrShark
Гислер опять выеживается. :-\
Ясно, что если пароль содержит пробел, ТС должен передавать его рару в двойных кавычках.

Код: Выделить всё

rar x "-pSome Pwd" file.rar
А он "отмазки лепит", что идея плохая - напиши ему плс..

Добавлено: Пт ноя 23, 2007 17:48
DrShark
Кто-то на этом форуме (Флинт, кажется) выкладывал прогу, которая, если её прописать архиватором в TC, будет параметры отображать. Можете её выложить, если она есть ещё у кого-то?

Добавлено: Пт ноя 23, 2007 18:03
Alextp

Добавлено: Пт ноя 23, 2007 18:24
DrShark
Это решение не совсем подходит.
Надо как-то поймать тот момент, когда пароль передаётся из TC в rar.exe/winrar.exe. Желательно это в лог записывать. Надо проверить, добавляет TC к паролю кавычки или нет.
Edit: При упаковке TC кавычек действительно не добавляет. Прога не подходит для варианта с распаковкой.

Добавлено: Пт ноя 23, 2007 18:49
Alextp
DrShark писал(а):Это решение не совсем подходит.
Почему? ты же можешь положить ее вместо Winrar.exe и смотреть, что ей передается.
DrShark писал(а):Прога не подходит для варианта с распаковкой.
Почему?

Добавлено: Пт ноя 23, 2007 19:10
DrShark
Проблема была в том, что при Alt+F6 TC не просил пароль, а сразу запускал прогу. Вопрос решился просмотром запакованого файла из архива. Итог: TC не использует кавычки.
После тестов я решил, что в текущем поведении TC тоже есть рациональное звено. Возьмём самый тяжёлый случай - я хочу упаковать архив с паролем
" "

Код: Выделить всё

"c:\Program Files\WinRAR\WinRAR.exe" -m5 a -c
- "D:\test\RarPack_quote.rar" -p"" "" "d:\Music\Other\RarPack.au3"
WinRar не принимает пароль в таком виде и выводит поле для ввода пароля. После ввода пароля WinRar запакует мне вместо одного файла RarPack.au3 все файлы из его папки, включая подпапки.
Если в даном случае winrar.exe заменить на консольный rar.exe, то ситуация вообще смешная: он просит ввести пароль, но ввод в командную строку не работает. Жму Enter и получаю ту же упакованую папку, но распаковать такой архив не получится, т.к. пароль вообще неизвестен.