Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » WinRAR (часть 4)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По вопросам лечения (кряки, патчи и т.д.), а также разблокировки архивов, обращаемся в «Варезник».
Отдельная тема по сборкам WinRAR
Предыдущие части темы: Часть 1 | Часть 2 | Часть 3



Официальный русский сайт: win-rar.com
Официальный e-mail разработчика WinRAR (писать на русском): dev@rarlab.com
 
Финальная английская версия: 6.02 x86 | x64 (14.06.2021)
Финальная русская версия:  6.02 x86 | x64 (14.06.2021)
 
Список изменений на английском языке
(на родном – смотрите файл WhatsNew.txt в дистрибутиве на вашем языке)
Скачать RAR для macOS, FreeBSD, Linux, Android можно здесь.

 
Скачать ранее вышедшие версии также можно с официального сайта и win-rar.com.

Версия 3.62 (ru) с подарочным ключом (респект камраду elmorte)

Коллекция всех ранее выходивших версий WinRAR 1.54b - 6.00 (1995-2020): скачать (265 МБ) [обновлено 10.01.2021]

вместо F.A.Q. || альтернативные архиваторы

Почему опять задерживается русская версия? А при русском разработчике на языке XXX уже давно есть. Не захламляйте тему подобными вопросами.

Кому не нравится новая тема оформления - скачайте с официального сайта rarlab.com (из раздела Themes) и установите себе WinRAR Classic theme by Francesco Indrio: Стандартная (48x36). Мелкие кнопки (24x24)

В теме активно отвечает на вопросы автор архиватора Евгений Рошал! Ситуация уникальная, прошу пользоваться.

Всего записей: 37312 | Зарегистр. 26-02-2002 | Отправлено: 19:30 27-08-2020 | Исправлено: Komandor, 21:14 14-06-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal
uShell
 
У сжатия NTFS есть особенность: нельзя сжимать корневой каталог тома (точку монтирования NTFS), но можно сжимать его дочерние каталоги и находящиеся в корневом каталоге файлы - сжатие приводит к ошибочной оценке скоростей чтения/записи на таком томе, в семёрке в Explorer это исправили - сжимаются дочерние по отношению к корню каталоги и расположенные в корневом каталоги файлы, но иные файл менеджеры или архиваторы могут на это нарваться.  
 
А само сжатие NTFS штука разумная - я его использую с момента появления данной возможности в WinNT 3.50 - эффективный средний объём тома увеличивается примерно в 1,4 - 1,5 раза по сравнению с несжатым томом, а скорость чтения / записи данных приближается к физическому пределу для используемого диска. Без сжатия скорость чтения/записи диска не превышает 45% - 50% от максимально возможной.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29013 | Зарегистр. 31-07-2002 | Отправлено: 00:09 29-05-2021 | Исправлено: Victor_VG, 00:15 29-05-2021
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uShell
Для CAB WinRAR использует cabinet.dll, а эта библиотека требует передачи ссылки на функцию открытия файла с параметрами, задаваемыми самой cabinet.dll:
https://docs.microsoft.com/en-us/windows/win32/api/fdi/nf-fdi-fnopen
 
Если мы придерживаемся официальной документации к этой библиотеке, то мы не можем использовать delete+create вместо open. Эту же pfnopen библиотека использует и для открытия архивов. В принципе, можно по передаваемым параметрам попробовать разобраться, когда допустимо вызывать create. Но это уже без гарантий совместимости со всеми версиями данной библиотеки.

Всего записей: 1463 | Зарегистр. 29-04-2013 | Отправлено: 11:34 29-05-2021
uShell

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal
Я не против, просто обратил внимание на различие (как минимум, в выставлении атрибута Compressed) между обработкой разных типов архивов.

Цитата:
мы не можем использовать delete+create вместо open

Почему нет? В примере по Вашей ссылке есть код if (oflag & _O_CREAT) dwCreationDisposition=CREATE_ALWAYS. Я сомневаюсь, что для библиотеки будет разница между CreateFile(CREATE_ALWAYS) и DeleteFile(),CreateFile(CREATE_NEW). Судя по интерфейсу, cabinet.dll вообще сама с файлами не работает, а только дёргает предоставленные через FDICreate() функции.

Всего записей: 422 | Зарегистр. 12-06-2019 | Отправлено: 12:18 29-05-2021
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uShell

Цитата:
Почему нет?

"Если придерживаемся документации и примеров". Если не придерживаемся, то, скорее всего, можно. Я писал, что по передаваемым параметрам можно посмотреть, когда допустимо удалять файл. Но если это и делать, то все же желательно проверять в ходе нормального, а не укороченного бета-тестирования 6.02.

Цитата:
Я сомневаюсь, что для библиотеки будет разница

Согласен. Другое дело, что и для большинства пользователей разницы не будет, а вам, насколько я понял, удобнее именно нынешнее поведение. Разве что ради единообразия можно подумать на этот счет.

Всего записей: 1463 | Зарегистр. 29-04-2013 | Отправлено: 15:17 29-05-2021
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uShell

Цитата:
Хотел бы высказать ещё одно пожелание для будущих версий: при замене файлов сохранять состояние атрибута "Сжатый" (конечно, если не задан ключ -oc). Сейчас WinRAR удаляет файл и создаёт его заново.

Я уже толком не помнил, как WinRAR поступает в этой ситуации, а сейчас все-таки решил проверить. Среди проверенных форматов для .rar, .arj, .cab, .7z, .tar. .gz состояние этого атрибута при распаковке сохраняется. Для .zip и .lzh сбрасывается. Так что стандартным поведением для WinRAR тут, скорее, является сохранение состояния этого атрибута, и распаковку .cab тогда трогать не надо.
 
Вы, наверное, проверяли с zip архивом?

Всего записей: 1463 | Зарегистр. 29-04-2013 | Отправлено: 15:47 30-05-2021
uShell

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal
Да, я наткнулся на эту особенность при обновлении программы - я распаковывал zip-архив поверх старого каталога. Сейчас перепроверил: для zip Process Monitor показывает удаление и создание файла, а для rar, действительно, этого не происходит - файл просто перезаписывается с параметром CREATE_ALWAYS.

Всего записей: 422 | Зарегистр. 12-06-2019 | Отправлено: 16:29 30-05-2021
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uShell
Я все же сейчас выложил обновленную английскую beta 1, где zip и lzh должны распаковывать аналогично прочим форматам, без удаления файла. Если по ходу тестирования не обнаружатся проблемы, тогда, пожалуй, так и оставлю.

Всего записей: 1463 | Зарегистр. 29-04-2013 | Отправлено: 19:11 30-05-2021
GGS



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal
Цитата:
распаковывать ... без удаления файла

Я очень надеюсь на это, т.к. иначе при распаковке с заменой теряются жёсткие ссылки, если их имел исходный файл.

Всего записей: 998 | Зарегистр. 25-03-2002 | Отправлено: 19:51 30-05-2021
uShell

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal
Да, теперь не удаляется, спасибо. А про жёсткие ссылки я и забыл - действительно, теперь можно подменять сразу все, а не только в каталоге распаковки.

Всего записей: 422 | Зарегистр. 12-06-2019 | Отправлено: 21:30 30-05-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal
GGS

Цитата:
распаковывать ... без удаления файла

Точнее, на NTFS потери жёстких ссылок при удалении N-2 копий файла не происходит - происходит уменьшение счётчика ссылок N в записи файла, но потеря данных в таком случае имеет место за счёт потери скрытых и альтернативных потоков данных у удалённой и созданной заново копии, что при точном сравнении с учётом потоков приведёт к выводу результата "файлы различаются".  
 
В случае же символических ссылок удаление и создание заново файла либо каталога цели (таргета) симлинка не ведёт к удалению самого симлинка т.к. это просто хранимый в пространстве имён NTFS указатель на таргет, но если данные симлинка изменяются в соответствии с изменением таргета то они не совпадут с первоначальными, что может вызвать сбой использующих их задачи.
 
И по моему эти моменты стоит отобразить в документации применительно к ключам -oc, -oh, -oi -ol чтобы люди используя их при работе с хард-/симлинками проверяли не может ли иметь место событие изменения их содержимого в тот момент, когда оно используется другой задачей. Или rar должен иметь дополнительную проверку таких объектов на допустимость операции их изменения, и если кто-то ещё обращается к ним по чтению/записи либо игнорировать в ней значения ключей -oc, -oh, -oi,-ol, либо приостанавливать операцию с выводом информационного сообщения о её приостановке для предотвращения сбоя других приложений использующих эти данные. Либо пропускать их перезапись...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29013 | Зарегистр. 31-07-2002 | Отправлено: 21:34 30-05-2021 | Исправлено: Victor_VG, 21:34 30-05-2021
los

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GGS

Цитата:
Я очень надеюсь на это, т.к. иначе при распаковке с заменой теряются жёсткие ссылки, если их имел исходный файл.  

разве это не особенность формата zip, а не проблема WinRAR?

Всего записей: 3830 | Зарегистр. 08-09-2001 | Отправлено: 21:37 30-05-2021
GoblinNN

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GGS

Цитата:
иначе при распаковке с заменой теряются жёсткие ссылки

симлинки остаются.

Всего записей: 1701 | Зарегистр. 11-10-2005 | Отправлено: 22:07 30-05-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
 
Контейнер Zip вообще не знает что существуют NTFS атрибуты Compressed, Encrypted, Not indexed, Sparse, Temporary, Offline, Reparse point или ReFS атрибуты The Integrity stream и No scrub data и т.п. - внешние по отношению к контейнеру атрибуты файла пишутся в 32-х битное поле external file attributes записи файла в центральном каталоге архива, а формат этого поля задаётся используемой при создании архива ОС - выписка из спецификации Zip от PkWare Inc. :

Цитата:
external file attributes: (4 bytes)
 
The mapping of the external attributes is host-system dependent (see 'version made by').  
For MS-DOS, the low order byte is the MS-DOS directory attribute byte.  
If input came from standard input, this field is set to zero.

И таким образом в случае с Zip предотвращение возможных проблем его спецификация перекладывает на архиватор, ОС или пользователя - типа сами разберитесь кто эти займётся.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29013 | Зарегистр. 31-07-2002 | Отправлено: 22:31 30-05-2021
uShell

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
разве это не особенность формата zip

Как подметил Victor_VG, это - особенность ПО, а не контейнера. На самом деле проблема намного шире. Из личного опыта: Блокнот файл перезаписывает, а Word и Visual Studio - удаляют-пересоздают (потому что изменения пишут в отдельный файл, а переименовать его быстрее, чем копировать в исходный). В результате нельзя поправить содержимое документа сразу во всех местах, куда прокинуты жёсткие ссылки. Хотя весь этот софт одна контора делала...

Всего записей: 422 | Зарегистр. 12-06-2019 | Отправлено: 22:54 30-05-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GoblinNN
 
Симлинк и хардлинк NTFS имеют принципиально разную природу:  
 
симлинк это независимый объект содержащий UNC указатель на любой иной объект, в т.ч. расположенный на сети, вне границ тома или файловой системы локальной ОС;  
 
хардлинк это объект который имеет одну копию данных и значение числа связей в счётчике использования в MFT больше единицы , а также равное ему число указывающих на общую копию данных записи файлов или каталогов с произвольными именами в этом или других каталогах тома, но не может указывать на объект находящийся за его пределами.
 
Потому удаление и запись нового таргета не разрывает симлинк до его удаления средствами ОС хотя содержимое таргета непредсказуемо, а удаление хардлинка на объект и последующая запись нового объекта под тем же именем ведёт к появлению нескольких  разных по содержанию, но в частном случае одноимённых объектов.
 
Добавлено:
uShell
 
ОС, её приложения и средства разработки у M$ ещё с момента создания сей конторы пишут разные люди у которых свои представления о том, как и что работает. Отсюда и вся сия свистопляска...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29013 | Зарегистр. 31-07-2002 | Отправлено: 23:02 30-05-2021
GoblinNN

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG

Цитата:
Симлинк и хардлинк NTFS имеют принципиально разную природу

да пофиг. цель то одна у всего этого? потому я и делаю симлинки. например на unrar.dll unrar64.dll оно много где используется и чтоб не плодить дупы наделал симлинки. а потом просто устанавливаю новую версию unrar с заменой. все работает.  

Всего записей: 1701 | Зарегистр. 11-10-2005 | Отправлено: 23:43 30-05-2021 | Исправлено: GoblinNN, 23:48 30-05-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GoblinNN
 
Не было бы разницы - работало бы одинаково. Достаточно перенести таргет симлинка в другое место и он "сломается" - при обращению к нему объект не найдётся, а для хардлинка такого явления нет.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29013 | Зарегистр. 31-07-2002 | Отправлено: 06:28 31-05-2021
GoblinNN

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
вот. коротко и ясно. но все равно таргет симлинка двигать не собираюсь. если политика партии не поменяется. опять же пример. как лежало c:\Program Files (x86)\UnrarDLL\UnRAR.dll так и будет лежать. а вот хардлинк пострадать мог.

Всего записей: 1701 | Зарегистр. 11-10-2005 | Отправлено: 07:51 31-05-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GoblinNN
 
Хардлинк если его передвинуть в любую точку тома этого не заметит от слова "совсем", а симлинк и использующие его приложения выдадут кучу забавных звуков. Но, как сказал один исторический персонаж интеллект штука лишняя, а знания и вовсе криминал.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29013 | Зарегистр. 31-07-2002 | Отправлено: 08:03 31-05-2021
los

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG,

Цитата:
Контейнер Zip вообще не знает что существуют NTFS атрибуты...

спасибо.
 
Victor_VG, uShell,
будьте добры - выложите *.zip с hardlink.
 

Цитата:
На самом деле проблема намного шире.


Цитата:
ОС, её приложения и средства разработки у M$ ещё ...

Это "проблема" не только Windows.
 
 
 

Всего записей: 3830 | Зарегистр. 08-09-2001 | Отправлено: 08:52 31-05-2021 | Исправлено: los, 08:54 31-05-2021
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

Компьютерный форум Ru.Board » Компьютеры » Программы » WinRAR (часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru