使用稍微修改过的http://www.java2s.com/Code/Java/File-Input-Output/Makingazipfileofdirectoryincludingitssubdirectoriesrecursively.htm将目录压缩成zip,剩下的就是:
源路径
E:someDir/someDir/somefile
和.zip中的路径
E:someDir/someDir/somefile
我想进入.zip是
someDir/somefile
但是,如果完整的dir路径在程序用户之间有所不同,如何实现呢?
最佳答案
在您的帖子示例中,此行需要修改:
out.putNextEntry(new ZipEntry(files[i].getAbsolutePath()));
应该
out.putNextEntry(new ZipEntry("someDir/somefile"));
但是随后您应该能够从完整的源路径
someDir/somefile
派生E:someDir/someDir/somefile
。您应该能够通过子字符串或通过附加File.getParentFile()