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

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

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

Maz (31-07-2023 08:32): WinRAR (часть 5)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201

   

Maz



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



 
Официальный русский сайт: win-rar.com
Официальный e-mail разработчика WinRAR (писать на русском): dev@rarlab.com
 
Стабильная английская версия: 6.22 x86 | x64 (31 мая 2023 г.)
Стабильная русская версия:  6.22 x86 | x64 (31 мая 2023 г.)

Текущая английская бета-версия:  6.23 beta 1 x86 | x64
Текущая русская бета-версия:  6.23 beta 1 x86 | x64

Примечание: английская бета-версия обновляется регулярно, без изменения номера версии. подробнее...
Список изменений на английском языке
(на родном – смотрите файл WhatsNew.txt в дистрибутиве на вашем языке)
Скачать RAR для macOS, FreeBSD, Linux, Android можно здесь.

Скачать ранее вышедшие версии можно с официального FTP
Таблица совместимости версий с различными ОС

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

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

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

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

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

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

Всего записей: 38836 | Зарегистр. 26-02-2002 | Отправлено: 19:30 27-08-2020 | Исправлено: DimmY, 17:47 20-07-2023
Victor_VG



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

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33230 | Зарегистр. 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. Но это уже без гарантий совместимости со всеми версиями данной библиотеки.

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

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

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

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

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

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

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

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

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

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

Всего записей: 2261 | Зарегистр. 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 архивом?

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

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

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

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

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



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

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

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

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

Всего записей: 1015 | Зарегистр. 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 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

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

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

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

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

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

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

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

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

Всего записей: 2908 | Зарегистр. 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 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

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

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

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

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

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



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

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

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

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

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

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

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



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

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

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

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

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



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

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

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

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

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

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

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


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

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

Всего записей: 7336 | Зарегистр. 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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201

Компьютерный форум Ru.Board » Компьютеры » Программы » WinRAR (часть 4)
Maz (31-07-2023 08:32): WinRAR (часть 5)


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru