View previous topic :: View next topic |
Author |
Message |
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Fri Dec 03, 2010 22:03 Post subject: |
|
|
Первая же причина, по которой паковаться может не вся папка, а только её часть - список исключений. Я выше об этом писал. Если у тебя в списке исключений есть строки, фильтрующие часть файлов папки, добавляемой в архив, тотал просто не перечислит эти файлы в списке, передаваемом архиватору. И в таком случае паковать всю папку - неправильно. Все плагины должны вести себя одинаковым образом, а не так, что один - так, другой - эдак.
А 60000 строк или одна - это лишь сваливание работы по перечислению файлов с тотала на внешний архиватор. В любом случае кому-то придется перечислять файлы.
В конце концов, если кому-то хочется передавать в списке лишь объекты верхнего уровня - парой страниц раньше я приводил код кнопки, которая именно это и делает - вызывает 7zG с отображением диалога параметров сжатия, при этом передавая список выделенных в панели объектов. И не надо вызывать диалог упаковки, выбирать архиватор... _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Reflector
Joined: 29 Nov 2009 Posts: 56
|
(Separately) Posted: Fri Dec 03, 2010 23:08 Post subject: |
|
|
MVV wrote: |
Первая же причина, по которой паковаться может не вся папка, а только её часть - список исключений. Я выше об этом писал. Если у тебя в списке исключений есть строки, фильтрующие часть файлов папки, добавляемой в архив, тотал просто не перечислит эти файлы в списке, передаваемом архиватору. И в таком случае паковать всю папку - неправильно. Все плагины должны вести себя одинаковым образом, а не так, что один - так, другой - эдак.
|
Я же просил привести пример того, что именно можно безопасно хранить в списке исключений. Ничего там нельзя хранить, иначе при упаковке можно потерять часть данных. Тотал фильтрует список только для zip, архиваторные плагины всегда получают полный список(только что проверил), в том числе архиваторы которые получаю список напрямую, например, если прописать в тотале внешний rar. Глупая идея приводящая к потере данных(я сам до сегодняшнего дня был уверен, что список просто файлы скрывает), так еще и с разными архиваторами работающая по-разному.
Quote: |
А 60000 строк или одна - это лишь сваливание работы по перечислению файлов с тотала на внешний архиватор. В любом случае кому-то придется перечислять файлы.
|
60000 строк или одна, 40 сек или 6 - это все не имеет значения? А вспомни с чего все началось... Скорее всего я нажал во время упаковки отмену, затем дал паковать второй раз, через 2 сек после этого появился 7zG запущенный во время первой паковки, потому что он уже пол минуты невидимо висел в процессах и обрабатывал список, о чем я, конечно, не знал. Это нормальное поведение? Зачем давать делать архиватору то, что он делает очень медленно...
Quote: |
В конце концов, если кому-то хочется передавать в списке лишь объекты верхнего уровня - парой страниц раньше я приводил код кнопки, которая именно это и делает - вызывает 7zG с отображением диалога параметров сжатия, при этом передавая список выделенных в панели объектов. И не надо вызывать диалог упаковки, выбирать архиватор...
|
Это костыль, такой же как и упаковка внешним архиватором. |
|
Back to top |
|
|
Total7zip
Joined: 27 Nov 2010 Posts: 287
|
(Separately) Posted: Fri Dec 03, 2010 23:18 Post subject: |
|
|
кстати, господа, я попробовал ту же версию плагина на Win XP.
точно так же выбрал каталог Windows.
и там произошло следующее - сначала тормозил тотал, составляя полный список файлов, а потом почти мгновенно запустился 7zG.
Так что возможно есть в нем какой-то глюк, который проявляется под семеркой.
Даже несмотря на то что в XP папка в несколько раз меньше, меня удивило, что тормоза в тотале остались, а в 7zG исчезли...
и еще - по поводу перекладывания работы на архиватор - это существенно ускоряет процес, так как в этом случае архиватор не думает, что ему дали 60 000 масок. он просто строит список файлов сам.
это так, для размышления.
=) |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sat Dec 04, 2010 00:29 Post subject: |
|
|
Масок или нет - ему думать и не надо. Вызвать FindFirstFile, а затем вызывать FindNextFile, пока не отбой.
Проверил сейчас на Total7zip - какие файлы отображались в панели, такие и упаковались. Игнорируемые файлы в архив не попали. Это к вопросу о том, можно ли заменять список файлов верхней папкой.
Думаю, если сделать возможными фоновые операции, или просто выполнять большую часть работы в фоновом потоке, можно избавиться от необязательного ожидания - построить свой список файлов и передать дело фоновому потоку для запуска архиватора.
Мои тесты были на XP, но с папкой Windows от семерки.
При тестах также не забывайте, что первый раз перечисление содержимого папки длится дольше из-за кэширования. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Reflector
Joined: 29 Nov 2009 Posts: 56
|
(Separately) Posted: Sun Dec 05, 2010 14:57 Post subject: |
|
|
MVV wrote: |
Проверил сейчас на Total7zip - какие файлы отображались в панели, такие и упаковались. Игнорируемые файлы в архив не попали.
|
Значит я проверил на своей версии плагина
Quote: |
Это к вопросу о том, можно ли заменять список файлов верхней папкой.
|
Снова пакуем Win7, но на этот раз одной из сборок, где в список исключений внесены recycler, desktop.ini и т.д., просто потому, что авторы думают будто всего лишь спрятали файлы, т.к. в описании написано "исключить(не показывать)". Уверен, большинство пользователей очень удивятся когда десяток desktop.ini из самой папки Windows в архив не попадет, а если почитать статьи в которых чего только не предлагают добавлять в список исключений, то становится понятно насколько потенциально деструктивно игнорирование списка при файловых операциях. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sun Dec 05, 2010 17:47 Post subject: |
|
|
Это уже пусть голова болит у тех, кто использует список исключений и сборки (насчет последнего со мной согласится большая часть форумчан).
Лучше знать, что файлы могут не попасть в архив из-за списка исключений, чем не знать этого и когда-нибудь на это напороться. А когда половина плагинов действует по списку исключений, а другая - нет, шанс напороться несоизмеримо выше. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10258 Location: Россия, Саратов
|
(Separately) Posted: Sun Dec 05, 2010 18:09 Post subject: |
|
|
Reflector wrote: | я сам до сегодняшнего дня был уверен, что список просто файлы скрывает |
Reflector wrote: | становится понятно насколько потенциально деструктивно игнорирование списка при файловых операциях |
Справка TС wrote: | Настройка исключения заданных файлов/каталогов: они не будут отображаться в списке и участвовать в файловых операциях. Эта функция работает только с обычными файлами/каталогами. Файлы на FTP-серверах, внутри архивов и виртуальных папок (таких как Рабочий стол) не могут быть объектами исключения. |
Это преамбула соответствующего диалога настроек. Если кто-то храбро использует функцию исключения, игнорируя вышеприведённую информацию — последствия за его счёт. Но, в конце-то концов, кнопка для временного включения/отключения этой функции создаётся за полминуты... А встроенный ZIP-архиватор действительно список учитывает. В отличие от всего остального. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Reflector
Joined: 29 Nov 2009 Posts: 56
|
(Separately) Posted: Sun Dec 05, 2010 21:08 Post subject: |
|
|
Avada wrote: |
Это преамбула соответствующего диалога настроек. Если кто-то храбро использует функцию исключения, игнорируя вышеприведённую информацию — последствия за его счёт. Но, в конце-то концов, кнопка для временного включения/отключения этой функции создаётся за полминуты... А встроенный ZIP-архиватор действительно список учитывает. В отличие от всего остального.
|
Для того, чтобы храбро использовать список исключений нужно знать чем рискуешь, а знают об этом единицы, потому и советуют добавлять в него все что угодно. Вот найди мне в дистрибутиве тотала информацию о том, что файлы присутствующие в списке исключений игнорируются при копировании или упаковке... |
|
Back to top |
|
|
Reflector
Joined: 29 Nov 2009 Posts: 56
|
(Separately) Posted: Sun Dec 05, 2010 21:56 Post subject: |
|
|
MVV wrote: |
Лучше знать, что файлы могут не попасть в архив из-за списка исключений, чем не знать этого и когда-нибудь на это напороться. А когда половина плагинов действует по списку исключений, а другая - нет, шанс напороться несоизмеримо выше.
|
Как я говорил, люди не знают, что файлы могут не попасть в архив, а если бы знали, то списком исключений вообще мало кто бы пользовался, а это значит, что в любом случае польза от него минимальна. Стоит ли ради сомнительной выгоды жертвовать надежностью хранения данных? Да, Гислер уже реализовал данную функциональность, но продвигать ее только потому, что она уже есть и делать крайним рядового пользователя чьей-то сборки... Я считаю, что список исключений в существующем виде приносит больше проблем, потому напротив нужно добиваться исключения его самого. Пользователя не должны волновать чьи-то безумные идеи, он ожидает получить на выходе нормальный архив и уж тем более он не должен каждый раз перед упаковкой нажимать какие-то кнопки создаваемые за пол минуты... |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10258 Location: Россия, Саратов
|
(Separately) Posted: Sun Dec 05, 2010 22:12 Post subject: |
|
|
Reflector wrote: | Вот найди мне в дистрибутиве тотала информацию о том, что файлы присутствующие в списке исключений игнорируются при копировании или упаковке |
Я привёл выше цитату из справки, выделив значимый фрагмент. Это не информация? Если её кто-то не желает читать и понимать — виноват разработчик?
Reflector wrote: | Я считаю, что список исключений в существующем виде приносит больше проблем, потому напротив нужно добиваться исключения его самого. |
Это здесь не по адресу. К авторам сборок, пожалуйста. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sun Dec 05, 2010 22:59 Post subject: |
|
|
ИМХО, если список исключений используется для фильтрации чего-то нужного юзеру в архиве, это точно его проблемы. А если в архив не попадет папка Recycler, пара файлов desktop.ini, папка .svn или еще что-то подобное, ничего страшного не произойдет - эти файлы в большинстве своем не модифицируются конечным пользователем. Главное - чтобы все модули программы, выполняющие схожие функции, работали идентичным образом, а не абы как. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Total7zip
Joined: 27 Nov 2010 Posts: 287
|
(Separately) Posted: Mon Dec 06, 2010 14:13 Post subject: |
|
|
нужна помощь!
делаю настройки - чтоб можно было вызвать диалог, настроить один раз настройки компрессии и не лицезреть этот диалог каждый раз.
возник такой вопрос. 7zip хранит настройки в реестре
Code: | [HKEY_CURRENT_USER\Software\7-Zip\Compression\Options\7z]
"Level"=dword:00000009
"Dictionary"=dword:02000000
"Order"=dword:00000040
"BlockSize"=dword:00000020
"NumThreads"=dword:00000002
"Method"="LZMA"
|
"Level", "Dictionary", "NumThreads" и "Method"
я научился передавать через параметры командной строки, а кто поможет с "Order" и "BlockSize"?
"Order" - соответствует настройке "размер слова" в диалоге,
а "BlockSize" - 20, 21, 22.... увеличивается на 1 для каждого следующего значения в диалоге. |
|
Back to top |
|
|
Reflector
Joined: 29 Nov 2009 Posts: 56
|
(Separately) Posted: Mon Dec 06, 2010 15:09 Post subject: |
|
|
Total7zip wrote: |
"Order" - соответствует настройке "размер слова" в диалоге,
|
Размер слова - это fast bytes, fb={N}.
Quote: |
а "BlockSize" - 20, 21, 22.... увеличивается на 1 для каждого следующего значения в диалоге.
|
Отними 20 и получишь индекс для списка в 7zG. Дальше размер передается, например, так: s=4g. Это все описано в документации(ключ -m). |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Mon Dec 06, 2010 15:33 Post subject: |
|
|
Total7zip wrote: | а "BlockSize" - 20, 21, 22.... увеличивается на 1 для каждого следующего значения в диалоге. |
Это размер solid блока=2^N (байт)
где N - число, упомянутое в цитате (сохраненное в реестре). _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Reflector
Joined: 29 Nov 2009 Posts: 56
|
(Separately) Posted: Mon Dec 06, 2010 15:48 Post subject: |
|
|
gora wrote: |
Это размер solid блока=2^N (байт)
|
Да, выходит что так... |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|