[java] 자바에서 압축 해제 후 파일의 권한 설정하기
압축 해제된 파일의 권한을 설정하는 것은 자바 프로그램에서 매우 중요한 작업입니다. 이 기능은 세부적인 보안과 파일 시스템 제어에 관련된 작업에서 사용됩니다. 여기에서는 java.util.zip
패키지를 사용하여 파일을 압축 해제하고, java.nio.file.attribute
를 사용하여 파일의 권한을 설정하는 방법을 알아보겠습니다.
1. 압축 해제하기
import java.util.zip.*;
import java.io.*;
public class FileDecompression {
public static void main(String[] args) {
String zipFilePath = "example.zip";
String destDirectory = "destination";
try {
File destDir = new File(destDirectory);
if (!destDir.exists()) {
destDir.mkdir();
}
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath));
ZipEntry entry = zipIn.getNextEntry();
while (entry != null) {
String filePath = destDirectory + File.separator + entry.getName();
if (!entry.isDirectory()) {
extractFile(zipIn, filePath);
} else {
File dir = new File(filePath);
dir.mkdir();
}
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void extractFile(ZipInputStream zipIn, String filePath) throws IOException {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
byte[] bytesIn = new byte[4096];
int read = 0;
while ((read = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read);
}
bos.close();
}
}
2. 파일 권한 설정하기
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermission;
import java.util.HashSet;
import java.util.Set;
public class FilePermission {
public static void main(String[] args) {
String filePath = "destination/example.txt";
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.OTHERS_READ);
try {
Files.setPosixFilePermissions(Paths.get(filePath), perms);
} catch (IOException e) {
e.printStackTrace();
}
}
}
위 코드에서 FilePermission
클래스는 java.nio.file.attribute.PosixFilePermission
클래스를 사용하여 파일의 권한을 설정하고 있습니다. 설정할 수 있는 권한에는 읽기, 쓰기 및 실행에 대한 옵션이 포함되어 있습니다.
이제 압축 해제 후 파일의 권한을 설정하기 위한 자바 프로그램을 작성하는 방법을 알아보았습니다. 이를 통해 파일 시스템 작업에 대한 보다 세밀한 제어가 가능해졌습니다.
참고 자료: