Отправляет email-рассылки с помощью сервиса Sendsay

[TC] создание архива.

Здравствуйте, industry.comp.tiflocomp-list@subscribe.ru.

Друзья такой вопрос. Я слышал, что при архивировании файлы в архив
упаковываются в определенном порядке, причем от этого порядка во
многом зависит скорость доступа к архивированной информации. Так вот,
у меня есть несколько сот однотипных папок, в каждой из которых есть
файл, предположим, text.htm. Необходимо скопом запаковать эти папки,
разумеется, каждую папку в отдельный архив, таким образом, чтобы этот
файл всегда был первым в списке.

Буду благодарен за любой совет по данной проблеме.

Ответить   Sun, 27 Jul 2008 22:41:45 +0400 (#765550)

 

Ответы:

Здравствуйте, Михаил.

Вы писали 27 июля 2008 г., 22:41:45:

В общем-то нет, это существенно только для непрерывных архивов - чтобы
добраться до некоего файла, в непрерывном архиве надо распаковать все
файлы, находящиеся _до_ этого файла. В обычном архиве каждый файл
запакован независимо, поэтому порядок файлов не важен.

Чем паковать собираетесь? RAR, например, умеет паковать файлы в
определённом порядке. В папке с раром смотрите файл RarFiles.lst, там
всё понятно, собственно.

В остальных случаях (т.е. с другими архиваторами) можно попробовать
архивировать по списку файлов. Т.е. вы составляете список файлов, в
том порядке, как вам надо, и записываете его в, например, txt файл.
Затем говорите архиватору взять файлы для архивирования по списку из
вашего txt файла. Обычно этот файл указывается в конце командной
строки, предваряемый знаком "@":
архиватор.exe a -суперсжатие archive.zi***@l*****.txt

Смотрите, например, справку по архиватору 7z, раздел "User's Guide for
command line version".

Как вариант можно сначала создать архив, куда включить только один
text.htm. Потом, когда архив из одного файла будет создан, другой
командой добавляем в него все остальные файлы.

Ответить   Mon, 28 Jul 2008 00:52:03 +0400 (#765576)

 

Здравствуйте, Yegor.

Вы писали понедельник 28 июля 2008 г. 0:52

архиватор winrar

Тут ситуация такая. Вышеозначенные папки содержат книги в формате html
сделанные по одному шаблону. Задача состоит в том, чтобы их запаковать
и добавить в каталог буксира. Однако когда в каталог буксира
добавляешь архив, где много файлов, то он при обращении к архиву
открывает произвольный файл. По-видимому, это как раз таки первый файл
в архиве. Поэтому мне и нужно сделать первым вполне определенный файл,
который присутствует в каждом из архивов.

Я посмотрел предложенный вами файл RarFiles.lst, и даже вписал первой
строчкой в него имя нужного файла. Однако, по-видимому, этот файл
принимается во внимание только при упаковке в непрерывный архив. Я
перепаковал папки, и судя по расположению файлов в режиме "без
сортировки" в тотале, их положение в архивах не изменилось.

Выбор обычного архива диктовался тем, что при открытии книги буксир сначала
должен распаковать всю книгу. zip-архив с обычной степенью сжатия мне
показался наиболее оптимальным с точки зрения скорости распаковки.
Хотя, может, я и не прав.

По поводу архивации по списку... Это надо целую программу писать чтобы
составить такие списки для каждой папки...

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

В общем, пока размышляю...

Ответить   Mon, 28 Jul 2008 22:07:40 +0400 (#765798)

 

Здравствуйте, Михаил.

Вы писали 28 июля 2008 г., 22:07:40:

Да, только если архив непрерывный.

Если речь идёт об распаковке всего архива, то особой разницы по
скорости между обычным и непрерывным архивом нет, при использовании
обычной степени сжатия. Вот только формат zip не поддерживает
непрерывные архивы.

Ну зачем же так сразу? Во-первых, такие программы есть, хотя готовых
решений прямо сейчас не подскажу. Во-вторых, если папок не так много,
то можно руками список составить, командой dir или средствами тотал
командера.

Сначала создаёте архив и добавляете туда только один файл, тот,
который должен быть первым. Затем добавляете в этот архив все
остальные файлы. Например:

"c:\Program Files\WinRAR\Rar.exe" a -r -nindex.html myarch.zip каталог
"c:\Program Files\WinRAR\Rar.exe" u -r myarch.zip каталог

index.html - файл, котрорый должен быть первым;
myarch.zip - ваш создаваемый архив;
каталог - имя каталога, добавляемого в архив.

Более подробно см. справку по консольной версии rar. Но вроде я ничего
не напутал, потому что проверка показывает, что этими двумя командами
файл index.html таки помещается первым.

Ответить   Mon, 28 Jul 2008 23:49:05 +0400 (#765816)