2016-08-09 2 views
1

Я хочу сжать папку в расширение .7z с помощью java. Я пытаюсь использовать приведенный ниже код, но он создает новый файл и добавляет содержимое всех исходных файлов в один файл. Может ли кто-нибудь помочь мне выйти из этой проблемы .....Сжатие папки в 7z в java

Encoder encoder = new Encoder(); 
encoder.SetAlgorithm(2); 
encoder.SetDictionarySize(8388608); 
encoder.SetNumFastBytes(128); 
encoder.SetMatchFinder(1); 
encoder.SetLcLpPb(3,0,2); 
encoder.SetEndMarkerMode(false); 
encoder.WriteCoderProperties(outStream); 
long fileSize; 
fileSize = inputToCompress.length(); 
for (int i = 0; i < 8; i++)          
{ 
     outStream.write((int)(fileSize >>> (8 * i)) & 0xFF); 
}        

encoder.Code(inStream, outStream, -1, -1, null); 
+1

Не хотите, чтобы файлы в этой папке были добавлены в один файл .7z? Кстати, есть много информации, отсутствующей, например. как вы обрабатываете несколько файлов. – Thomas

+0

Предлагаю вам использовать [Apache Commons Compress] (https://commons.apache.org/proper/commons-compress/examples.html#a7z). Он предлагает больше поддержки, чем LZMA SDK. –

ответ

0

Во-первых, сжать каталог с помощью смолы. После этого сжимайте этот файл с помощью текущего кода.

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