2009-05-12 2 views

ответ

0

Насколько я знаю, вы можете создавать только файлы .cab, используя CABARC utility от Microsoft. Таким образом, нет реализации «чистой java».

Вы можете назвать что-то вроде:

CABARC n myArchive.cab *.* 

использованием Runtime.getRuntime().exec() для создания myArchive.cab.

+0

СРЮ, то не решение проблемы, потому что это на самом деле не зависит от платформы. – 2009-05-13 06:01:46

+2

Возможно, вы должны обновить свой вопрос, указав, что вам требуется независимое от платформы решение. Кроме того, учитывая, что .cab является запатентованным форматом Microsoft, я не уверен, что вы сможете найти решение, работающее за пределами Windows. –

1

Для начала вы можете использовать DeflaterOutputStream Java для выполнения сжатия Deflate, который является одной из поддерживаемых схем сжатия кабины.

О Whaddaya знает ... Я нашел одно: cablib (но не в разработке с 2006 года)

+0

jcablib, был также тем, что я нашел, но исходный сайт forge говорит только об извлечении файлов. – 2009-05-13 06:02:59

3

Я написал приложение Java, чтобы сделать это (чистые реализации Java). Он не поддерживает сжатие и поэтому в основном просто упаковывает файлы вместе и добавляет заголовок шкафа в систему. Это не слишком сложно сделать, взял меня за день, чтобы разобраться.

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

EDIT: теперь доступен на GitHub: https://github.com/grahamrb/CabinetMaker

+0

Грэм, вы могли бы поделиться этим приложением или своим кодом, чтобы создать такси под какой-то лицензией с открытым исходным кодом? –

+0

Наверняка, извиняюсь заранее, я написал код во время uni, поэтому он не сказочный, но, надеюсь, он вам поможет: https://github.com/grahamrb/CabinetMaker – grahamrb

+0

Прохладный! Это просто работает! Большое спасибо! –

Смежные вопросы