Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами / 21 сообщений из 21, страница 1 из 1
10.03.2008, 11:01
    #35180393
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Подскажите, пожалуйста, как упаковать и распаковать папку с файлами.
Естественно внутренними функциями, а не через командную строчку.

Архив нужен стандартный, например zip, cab или 7z.

библиотека должна уже быть в системе или свободнораспространяемая, например как zlib.dll.

Архив должен иметь высокую степень надёжности, информацию для востановления.


Самое печальное это, то, что подобных вопросов на разных форумах я нашел целую кучу. А вот Толкового ответа - ни одного.
Посылают смотреть либо иноязычные ресурсы либо к исходникам левых программ.

Будте, так добры, напишите просто и ясно, как подключать нужную dll, какие методы применить, чтобы сжать и разжать папку. Ну и пару слов о ньюансах, если таковые имеются.
...
Рейтинг: 0 / 0
10.03.2008, 11:12
    #35180398
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Вчера целый день мучал zlib.
Позавчера разобрался, как сжимать в памяти байтовые массивы, собственно это единственный мой успех.


Я думал, что zlib это тот же zip, но видимо это не так. Или winRar у меня кривой.
Сжал архив, взял нужный кусок данных (предположительно).
zlib ругнулся, я в расстройстве, до 4 ночи сидел, разбирался, где что в zip архиве, а тут такая бяка.

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

Проверял на архиве без сжатия, там имено всё как написано, а со сжатием ругается.
...
Рейтинг: 0 / 0
14.03.2008, 10:43
    #35190125
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Сходи на http://compression.ru/, может там чего найдешь полезного

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.03.2008, 11:54
    #35190430
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Я пользовался zip32.dll. Там вроде все просто и понятно. Попробуй, если не получится стучи в асю.
...
Рейтинг: 0 / 0
14.03.2008, 16:17
    #35191569
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Я и не думал, что в сети так много ресурсов посвященных архивации.

Да, я уже побывал на http://compression.ru/
Интересный ресурс, но ничего полезного не нашел.
Там больше о самих архиваторах, чем о том как их подключать.

Много времени потерял на zlib.dll, узнал о нём много интересного, но потом выяснил, что это не zip, а gzip (расширение *.gz).. Совсем другой формат и в архиве может быть только один файл.


Нашел исходник
http://www.bousoft.com/ocx/vbzip_unzip.zip
Именно zip32.dll и unzip32.dll
Но сделан он как-то по кривому. Чтобы у меня началась упаковка мне пришлось перерыть код исправляя жестко прописанные пути.
Да и то чудит чего-то.


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

Вопросов куча, но нужно отталкиватся от конкретного кода.
Например я подозреваю, что в найденом мною исходнике, не совсем верно объявляются типы данных. Из-за чего первый путь вообще не обрабатывается, а сообщает об ошибке.
Да и у внутренней функции куча параметров, с которыми очень трудно разобратся.
А ещё работает только в модуле, а я хотел затолкать в класс.
...
Рейтинг: 0 / 0
14.03.2008, 16:31
    #35191633
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Eric-SМного времени потерял на zlib.dll, узнал о нём много интересного, но потом выяснил, что это не zip, а gzip (расширение *.gz).. Совсем другой формат и в архиве может быть только один файл.Не совсем так. У .zip и .gz одинаковый алгоритм ужатия данных. Ты вполне можешь использовать zlib для работы с pkzip'овскими архивами, прийдется правда самостоятельно делать/читать pkzip'овские заголовки архива.
...
Рейтинг: 0 / 0
14.03.2008, 16:52
    #35191726
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Пробовал. делать Заголовок конечно не полный взял. Да и полного описания не смог найти, только на английском, есть вероятность, что мог не правильно понять.

Так вот, я сделал обычный zip по очереди winrar'ом, 7zip'ом, pkzip'ом и даже виндой. Взял те данные, которые должны были быть сжатым файлом и передал их функции uncompress библиотеки zlib.
Она мне выругалась, типа формат не правильный.

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

White Owl , я бы рад делать архив сам, так должно получится гораздо быстрее, чем с промежуточными папками. А к тому же zlib.dll всё равно подключён к моему проекту.
Но к сожалению не смог найти понятного описания заголовков архива zip.
А ломать его мне просто лень.

Так же нашел несколько исходников которые вроде бы работают с zip'ом используя zlib.dll, но даже не понял какими функциями.

Например вот этот
http://www.sources.ru/vb/cybercrypt.zip
...
Рейтинг: 0 / 0
14.03.2008, 17:01
    #35191767
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Eric-SНо к сожалению не смог найти понятного описания заголовков архива zip.
А ломать его мне просто лень.Если б ты ограничился первой фразой - я бы подсказал где искать.... А после прочтения второй фразы мне стало лень подсказывать.
...
Рейтинг: 0 / 0
14.03.2008, 17:01
    #35191770
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Конечно не смоим английским пытатся что-то понять вот в этом документе.
http://www.pkware.com/documents/casestudies/APPNOTE.TXT
Но в принципе, то что я понял практика подтвердила.
(на несжатых архивах)
В сжатых имя файла, длину сжатого и не сжатого файла тоже прочитал. И всё!
...
Рейтинг: 0 / 0
14.03.2008, 17:05
    #35191786
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
White Owl Eric-SНо к сожалению не смог найти понятного описания заголовков архива zip.
А ломать его мне просто лень.Если б ты ограничился первой фразой - я бы подсказал где искать.... А после прочтения второй фразы мне стало лень подсказывать.

Пожалуйста подскажите!

Ломать это долго и сложно, а ещё нет уверенности, что правильно понято.
...
Рейтинг: 0 / 0
16.03.2008, 02:27
    #35193323
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Для архивирования никогда не использовал dll-ки. Всегда обычные консольные версии архивторов - у каждого архиватора они есть и прекрасно запускаются через CreateProcess в скрытом режиме...
...
Рейтинг: 0 / 0
16.03.2008, 03:47
    #35193339
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Я далеко не очень хорошо знаю vb, а с createprocess не работал вообще.
Впрочем как мне кажется использование внешних программ удобнее и проще, но медленнее и более ресурсоёмко.

А мне же нужна большая скорость.
И так медленных мест слишком много.
Я сейчас написал свой класс, обёртку для zlib. Выходит конечно не zip, а нечто особенное. Да и пользоватся нужно аккуратно, так как ещё защит и проверок никаких не прикрутил.

Но теперь я могу в один сжатый файл, сохранить несколько документов, а потом их извлеч. Что собственно и требовалось.
К сожалению этот формат, кроме моей проги никто больше не понимает.
А ещё мне хочется защитить архив от повреждений, ну и может быть зашифровать, но с этим ещё не разбирался.

ато с помощью моего класса я легко могу брать и отправлять документы не только из файла, но и из памяти, например из RichTextBox или msxml.

Впрочем для моего проекта понадобятся подключать всевозможные внешние архивы. Тут-то и пригодится командная строчка.
Н там есть ещё одна проблема, как отловить, когда процес завершится. Да и процентики хотелось бы выводить.
...
Рейтинг: 0 / 0
17.03.2008, 12:28
    #35194794
IguMEN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
myappid=shell("rar.exe ........ {параметры сжатия можно узнать набрав в консоли c:\program files\winrar\rar.exe} ....[путь к файлу]" ) И быстро и велик изобретать не надо.
...
Рейтинг: 0 / 0
17.03.2008, 13:57
    #35195185
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Как я знаю shell запускает программу в отдельном процессе.
И ещё нужно повозится, чтобы определить, когда этот процесс будет завершен.
т.е. нужно как-то получить код процесса, и циклом следить, когда этот процес завершится.

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

Недавно наткнулся на то, что программа CoolReader работает именно с zip'ом, причем, используя zlib.

Люди уже эксперементировали с консолью, но пришли к выводу, что это неудобно. Сейчас они пытаются докапатся до 7zip, а я же пришел к выводу, что zip более стандартный.
...
Рейтинг: 0 / 0
17.03.2008, 14:25
    #35195329
IguMEN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Где-то в анналах моего харда есть процедурка, которая запускает процесс и возвращает статус завершения. Вечером могу сюда код закинуть, если интересно. Кстати, я использовал этот код как раз для архивирования Раром через Shell
...
Рейтинг: 0 / 0
17.03.2008, 14:31
    #35195349
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Да, пожалуйста.
Как я уже писал выше, мне всё равно потребуется поддерживать кучу внешних архиваторов, и эта функция будет очень полезна.
И не только для архивации, как я полагаю. Она же ведь будет работать если открывать документ в ms word или adob acrobat?
...
Рейтинг: 0 / 0
17.03.2008, 14:39
    #35195388
IguMEN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
В ворде должна по-любому, а про акробат - впервые слышу
...
Рейтинг: 0 / 0
17.03.2008, 16:58
    #35196017
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Пишу катологизатор текстов. По неведомым тродициям они бывают в очень разных форматах, да и ещё запакованы разными экзотическими архиваторами.
Для распаковки таких архивов планирую использовать внешние утилитки, их будет легко настроить и подключить.
Да и нестандартные документы открывать соответствующими редакторами.

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

Внешние редакторы запускаются из программы, и хотелось бы их тоже контролировать.
На тот случай если текст был изменён, чтобы его, по закрытию программы, можно было записать в банк.
adobe acrobat это для pdf
...
Рейтинг: 0 / 0
17.03.2008, 17:37
    #35196157
IguMEN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Теперь понял про акробат. Про pdf-то я в курсе, просто с контекстом не разобрался. Процедуре пофиг какой процесс контролировать. А насчет внешнего Рара - ну, переименуй его в myPaker.exe. Если это будет не коммерческий продукт, т.е. ты не извлекаешь из этого фантастическую личную выгодну - никто тебя камнями не закидает.
...
Рейтинг: 0 / 0
18.03.2008, 11:38
    #35197268
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
> Автор: IguMEN
> Где-то в анналах моего харда есть процедурка, которая запускает
> процесс и возвращает статус завершения. Вечером могу сюда код закинуть,
> если интересно. Кстати, я использовал этот код как раз для архивирования
> Раром через Shell

эта? :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18.03.2008, 17:45
    #35198796
Eric-S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами
Ну ничего себе!
Надо скопировать и потестить, пока только просмотрел.
Кажется много лишнего.
Без пол литра не разберёшся!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как архивировать файлы?Подскажите, пожалуйста, как упаковать и распаковать папку с файлами / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]