- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遵循以下方法使用 apache commons compress 解压缩 zip :
但是由于我使用 OutputStream
& IOUtils.copy(ais, os);
(代码如下) 来解压缩和复制文件,不保留时间戳。是否有另一种方法可以直接从 zip 中复制文件,以便保留文件时间戳。
try (ArchiveInputStream ais =
asFactory.createArchiveInputStream(
new BufferedInputStream(
new FileInputStream(archive)))) {
System.out.println("Extracting!");
ArchiveEntry ae;
while ((ae = ais.getNextEntry()) != null) {
// check if file needs to be extracted {}
if(!extract())
continue;
if (ae.isDirectory()) {
File dir = new File(archive.getParentFile(), ae.getName());
dir.mkdirs();
continue;
}
File f = new File(archive.getParentFile(), ae.getName());
File parent = f.getParentFile();
parent.mkdirs();
try (OutputStream os = new FileOutputStream(f)) {
IOUtils.copy(ais, os);
os.close();
} catch (IOException innerIoe) {
...
}
}
ais.close();
if (!archive.delete()) {
System.out.printf("Could not remove archive %s%n",
archive.getName());
archive.deleteOnExit();
}
} catch (IOException ioe) {
...
}
编辑:在 jbx's 的帮助下回答如下,进行以下更改即可使其正常工作。
IOUtils.copy(ais, os);
os.close();
outFile.setLastModified(entry.getLastModifiedTime().toMillis()); // this line
最佳答案
您可以使用 NIO 设置 lastModifiedTime
文件属性。 在写入文件后(关闭文件后)立即执行此操作。操作系统会将其最后修改时间标记为当时的当前时间。
https://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html
您需要从 zip 文件中获取最后修改时间,因此也许可以使用 NIO用于浏览并从存档中提取文件的 Zip Filesystem Provider` 比您当前的方法更好(除非您使用的 API 为您提供相同的信息)。
https://docs.oracle.com/javase/7/docs/technotes/guides/io/fsp/zipfilesystemprovider.html
关于Java 有选择地从 zip 中复制文件,以便保留文件时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54305184/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!