gpt4 book ai didi

java - zip 命令在 Java 代码中未按预期工作

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:30 25 4
gpt4 key购买 nike

我正在尝试在安装了 cygwin 的 Windows 计算机上通过 java 程序发出 zip 命令。我在java代码中给出了下面的cmd:

zip -r C:/Folder.zip C:/Folder

它给了我错误 - zip 错误:zip I/O 错误:没有这样的文件或目录,临时文件失败(C:/zibIIBYC)

但是 C:/Folder 存在。我不确定 C:/zibIIBYC 是什么?

当我尝试以下 cmd 时:

zip -r C:/cygwin64/Folder.zip C:/文件夹

然后在 C:/cygwin64 中创建了Folder.zip,但它是空的。

任何建议都会有帮助。

最佳答案

这并不能直接回答您的问题,但您不需要 Cygwin 或任何外部进程来压缩目录:

public void zip(Path zipFile,
Path directoryToZip)
throws IOException {
try (final ZipOutputStream zip = new ZipOutputStream(
new BufferedOutputStream(Files.newOutputStream(zipFile)))) {

Files.walkFileTree(directoryToZip, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file,
BasicFileAttributes attr)
throws IOException {
ZipEntry entry = new ZipEntry(
directoryToZip.relativize(file).toString());
entry.setSize(attr.size());
entry.setTime(attr.lastModifiedTime().toMillis());

zip.putNextEntry(entry);
Files.copy(file, zip);
zip.closeEntry();

return FileVisitResult.CONTINUE;
}
});
}
}

关于java - zip 命令在 Java 代码中未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35346395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com