尝试重命名 zip 文件中的内部文件,而无需解压缩然后以编程方式重新压缩。
例子。 test.zip包含test.txt,我想改成test.zip包含newtest.txt(test.txt改名为newtest.txt,内容不变)
遇到了这个有效的链接,但不幸的是它期望 test.txt 存在于系统上。在示例中,srcfile 应该存在于服务器上。
Blockquote Rename file in zip with zip4j
然后我在 Linux 上找到了 zipnote,它可以解决问题,但不幸的是我的版本不适用于 >4GB 的文件。
关于如何实现这一点有什么建议吗?最好在 Java 中。
最佳答案
这应该可以使用 Java 7 Zip 文件系统提供程序,例如:
// syntax defined in java.net.JarURLConnection
URI uri = URI.create("jar:file:/directoryPath/file.zip");
try (FileSystem zipfs = FileSystems.newFileSystem(uri, Collections.<String, Object>emptyMap())) {
Path sourceURI = zipfs.getPath("/pathToDirectoryInsideZip/file.txt");
Path destinationURI = zipfs.getPath("/pathToDirectoryInsideZip/renamed.txt");
Files.move(sourceURI, destinationURI);
}
关于java - 重命名 zip 文件中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126450/