使用稍微修改过的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()

08-27 15:25