0

Apache Commons Compress を使用してファイルを圧縮しています。アーカイブにパスワードを追加するにはどうすればよいですか?

public static void main(String args[]) throws FileNotFoundException, IOException {
SevenZOutputFile sevenZOutput = new SevenZOutputFile(new File("outFile.7z"));
File entryFile = new File("D:/image.jpg");
SevenZArchiveEntry entry = sevenZOutput.createArchiveEntry(entryFile, entryFile.getName());
sevenZOutput.putArchiveEntry(entry);
FileInputStream in = new FileInputStream(entryFile);
                int len;
                byte buffer[] = new byte[8192];
                int transferedMegaBytes2=0;
                while ((len = in.read(buffer)) > 0) {
                    sevenZOutput.write(buffer, 0, len);                    
                    transferredBytes += len;
                    int transferedMegaBytes = (int) (transferredBytes / 1048576);                          
                    if(transferedMegaBytes>transferedMegaBytes2){
                    System.out.println("Transferred: " + transferedMegaBytes + " Megabytes.");
                    transferedMegaBytes2=transferedMegaBytes;
                    }
                }
sevenZOutput.closeArchiveEntry();
sevenZOutput.close();    
}
4

2 に答える 2

0

Commons Compress を使用できるとは思いません。Apache Commons Compress サイトののセクションから:

現在、lzma、arj、dump、および Z の読み取りサポートのみを提供しています。arj は圧縮されていないアーカイブのみを読み取ることができます。7z は、7z でサポートされている多くの圧縮アルゴリズムと暗号化アルゴリズムを使用してアーカイブを読み取ることができますが、アーカイブを書き込むときの暗号化はサポートしていません

于 2014-02-23T22:44:45.780 に答える
0

残念ながら、圧縮はサポートされていません。このJNI ラッパーを使用することもできます。

そうすると、プラットフォームの独立性が失われる可能性があります。(彼らはそれがクロスプラットフォームだと言っていますが、私はそれに賭けません)

于 2014-02-23T22:59:22.200 に答える