アプリケーションでファイルを圧縮するためにzip4j 1.3.1 を使用しています。今、ファイル自体の名前を変更せずに、zip 内のファイルの名前を変更しようとしています。そのための方法があるようですが、うまくいきません。
私のコードは次のようになります:
public static void zipFile(File dstPath, File srcFile, String optionalName) throws ZipException {
ZipFile zipFile = new ZipFile(dstPath);
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_MAXIMUM);
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
parameters.setPassword(RutasDAO.getPassZip());
//here I'm setting the name in the zip, but it's not working
parameters.setFileNameInZip(optionalName);
zipFile.addFile(srcFile, parameters);
}
zip 内のファイルは、srcFile で渡しているファイルと同じ名前です。もしかしてまだ実装されてない?代替手段、方法、またはライブラリを知っていますか?
ありがとう。
編集:目的の名前で新しいファイルを作成し、それをソースファイルとして使用するソリューションを思いつきました:
File renamedFile = new File(tmpDirectory + optionalFileName);
copyFile(srcFile, renamedFile);