gpt4 book ai didi

Java 压缩正在更改创建文件的日期

转载 作者:行者123 更新时间:2023-11-30 10:11:40 25 4
gpt4 key购买 nike

我使用从 https://www.mkyong.com/java/how-to-compress-files-in-zip-format/ 复制的以下代码创建了一个 Zip 文件

创建 zip 文件时,条目会获取实际创建 zip 文件的日期。但是我想保留原始文件的日期。我在 Mac OS 上使用 java 1.7

我可以考虑通过读取文件属性来设置 zip 条目的日期。但这是在压缩时保持日期的正确方法吗?

   package org.saurav.simpletests.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Zipper {


public static void main( String[] args )
{
byte[] buffer = new byte[1024];

try{

FileOutputStream fos = new FileOutputStream("/Users/xxxx/Documents/Work//Data/Zipper/test.zip");
ZipOutputStream zos = new ZipOutputStream(fos);
ZipEntry ze= new ZipEntry("Sonar_Gerrit_Issue.png");

zos.putNextEntry(ze);
FileInputStream in = new FileInputStream("/Users/xxxx/Documents/Work/Data/Zipper/Sonar_Gerrit_Issue.png");
File file = new File("/Users/i054564/Documents/Work/Data/Zipper/Sonar_Gerrit_Issue.png");

int len;;
while ((len = in.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}

in.close();
zos.closeEntry();

//remember close it
zos.close();

System.out.println("Done");

}catch(IOException ex){
ex.printStackTrace();
}
}
}

最佳答案

压缩时需要设置日期如下:

File file = new File("Sonar_Gerrit_Issue.png");
ZipEntry ze = new ZipEntry(file);
ze.setTime(file.lastModified());

解压也是一样的:

File file = //unzipping here for ZipEntry ze
file.setLastModified(ze.getTime());

关于Java 压缩正在更改创建文件的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52327685/

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