[java] 자바에서 압축 해제 후 파일의 수정 일자 설정하기
다음은 간단한 예시 코드입니다.
import java.io.File;
import java.io.IOException;
import java.nio.file.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
public class Main {
public static void main(String[] args) {
try {
File zipFile = new File("example.zip");
ZipFile zip = new ZipFile(zipFile);
Path destDir = Paths.get("destinationDir");
Files.createDirectories(destDir);
zip.stream().forEach(entry -> {
try {
Path filePath = destDir.resolve(entry.getName());
Files.copy(zip.getInputStream(entry), filePath, StandardCopyOption.REPLACE_EXISTING);
File file = filePath.toFile();
file.setLastModified(entry.getLastModifiedTime().toMillis());
} catch (IOException e) {
e.printStackTrace();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
}
위 코드에서는 ZipFile
을 사용하여 압축 해제를 하고, Files.copy
를 통해 파일을 복사한 후 setLastModified
메소드를 사용하여 수정 일자를 변경하고 있습니다.
해당 기능에 대한 자세한 정보는 아래 링크에서 참고하실 수 있습니다.
위의 방법으로 수정일자를 변경하는 것은 파일이 압축 해제된 이후에 이루어지는 점에 유의해야 합니다.