[java] 파일 및 디렉토리의 속성과 권한 변경을 위한 Apache Commons IO 사용법

이번 블로그 포스트에서는 Java 프로그래밍에서 파일 및 디렉토리의 속성과 권한을 변경하는 방법을 알아보겠습니다. 이를 위해 Apache Commons IO 라이브러리를 사용할 것입니다. Apache Commons IO는 자바에서 파일 및 디렉토리 작업을 보다 쉽게 처리할 수 있도록 도와주는 유용한 라이브러리입니다.

Apache Commons IO 라이브러리 추가하기

먼저, Apache Commons IO 라이브러리를 사용하기 위해 프로젝트에 해당 라이브러리를 추가해야 합니다. Maven 프로젝트인 경우 pom.xml 파일에 다음 의존성을 추가하세요.

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.10.0</version>
</dependency>

Gradle 프로젝트인 경우 build.gradle 파일에 다음 의존성을 추가하세요.

implementation 'commons-io:commons-io:2.10.0'

이제 Apache Commons IO를 사용할 준비가 되었습니다.

파일 및 디렉토리 속성 변경하기

파일 크기 변경하기

import org.apache.commons.io.FileUtils;

public class FileAttributesExample {
    public static void main(String[] args) {
        try {
            File file = new File("path/to/file.txt");
            FileUtils.sizeOf(file); // 파일 크기를 바이트 단위로 반환합니다.
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

파일 수정 시간 변경하기

import org.apache.commons.io.FileUtils;

public class FileAttributesExample {
    public static void main(String[] args) {
        try {
            File file = new File("path/to/file.txt");
            long timestamp = System.currentTimeMillis();
            FileUtils.touch(file); // 파일의 수정 시간을 현재 시간으로 변경합니다.
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

파일 소유자 변경하기

import org.apache.commons.io.FileUtils;

public class FileAttributesExample {
    public static void main(String[] args) {
        try {
            File file = new File("path/to/file.txt");
            FileUtils.forceDelete(file); // 파일을 삭제합니다.
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서 “path/to/file.txt”는 실제 파일 경로에 맞게 변경해야 합니다.

디렉토리 권한 변경하기

디렉토리 생성하기

import org.apache.commons.io.FileUtils;

public class DirectoryPermissionsExample {
    public static void main(String[] args) {
        try {
            File dir = new File("path/to/directory");
            boolean created = dir.mkdirs(); // 디렉토리를 생성합니다.
            if (created) {
                FileUtils.forceDeleteOnExit(dir); // 프로그램 종료 시 디렉토리를 삭제합니다.
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

디렉토리 권한 변경하기

import org.apache.commons.io.FileUtils;

public class DirectoryPermissionsExample {
    public static void main(String[] args) {
        try {
            File dir = new File("path/to/directory");
            FileUtils.forceMkdir(dir); // 디렉토리를 생성합니다.
            FileUtils.forceDeleteOnExit(dir); // 프로그램 종료 시 디렉토리를 삭제합니다.

            FileUtils.forceDelete(dir); // 디렉토리를 삭제합니다.
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서 “path/to/directory”는 실제 디렉토리 경로에 맞게 변경해야 합니다.

결론

이번 포스트에서는 Java 프로그래밍에서 파일 및 디렉토리의 속성과 권한을 변경하는 방법을 Apache Commons IO를 사용하여 알아보았습니다. Apache Commons IO는 다양한 파일 및 디렉토리 작업에 유용한 기능을 제공하므로, 필요한 경우에는 이를 적극적으로 활용해 보시기 바랍니다.

참고 자료