[java] 파일 및 디렉토리의 속성 및 메타데이터 조회하기

Java에서 파일 및 디렉토리의 속성과 메타데이터를 조회하는 방법을 알아보겠습니다. 파일 및 디렉토리의 속성과 메타데이터는 파일의 크기, 생성일, 수정일, 소유자 등과 같은 정보를 포함합니다.

파일 속성 조회하기

Java에서는 java.io.File 클래스를 사용하여 파일의 속성을 조회할 수 있습니다. File 객체를 생성한 후에는 length(), lastModified(), isDirectory() 등의 메소드를 사용하여 파일의 속성을 확인할 수 있습니다.

import java.io.File;

public class FileAttributesExample {
    public static void main(String[] args) {
        File file = new File("파일 경로");

        if (file.exists()) {
            System.out.println("File 크기: " + file.length());
            System.out.println("마지막 수정일: " + file.lastModified());
            System.out.println("디렉토리 여부: " + file.isDirectory());
            // 추가적인 파일 속성 조회 메소드 사용 가능
        } else {
            System.out.println("파일이 존재하지 않습니다.");
        }
    }
}

위의 예시는 FileAttributesExample 클래스를 생성한 뒤, File 객체를 생성하고 원하는 파일 경로를 인자로 전달합니다. 그 후, exists() 메소드를 사용하여 파일의 존재 여부를 확인하고, 존재할 경우 length(), lastModified(), isDirectory() 등의 메소드를 사용하여 파일의 속성을 출력합니다.

디렉토리 메타데이터 조회하기

Java에서는 java.nio.file 패키지를 사용하여 디렉토리의 메타데이터를 조회할 수 있습니다. Files 클래스의 getOwner(), getLastModifiedTime(), getPosixFilePermissions() 등의 메소드를 사용하여 디렉토리의 메타데이터를 확인할 수 있습니다.

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileOwnerAttributeView;
import java.nio.file.attribute.PosixFileAttributeView;
import java.nio.file.attribute.PosixFileAttributes;

public class DirectoryMetadataExample {
    public static void main(String[] args) {
        Path path = Paths.get("디렉토리 경로");

        try {
            FileOwnerAttributeView ownerAttributeView = Files.getFileAttributeView(path, FileOwnerAttributeView.class);
            System.out.println("소유자: " + ownerAttributeView.getOwner());

            PosixFileAttributeView fileAttributeView = Files.getFileAttributeView(path, PosixFileAttributeView.class);
            PosixFileAttributes posixFileAttributes = fileAttributeView.readAttributes();
            System.out.println("마지막 수정일: " + posixFileAttributes.lastModifiedTime());
            System.out.println("파일 퍼미션: " + fileAttributeView.getPermissions());
            // 추가적인 디렉토리 메타데이터 조회 메소드 사용 가능
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 예시는 DirectoryMetadataExample 클래스를 생성한 뒤, Path 객체를 생성하고 원하는 디렉토리 경로를 인자로 전달합니다. 그 후, getFileAttributeView() 메소드를 사용하여 디렉토리의 FileOwnerAttributeViewPosixFileAttributeView를 얻습니다. 해당 뷰를 사용하여 소유자, 마지막 수정일, 파일 퍼미션 등을 출력합니다.

위의 예시에서는 PosixFileAttributeView를 사용하였지만, 플랫폼에 따라 다른 뷰를 사용할 수 있습니다. 예를 들어 Windows 운영체제에서는 FileAttributeView를 사용할 수 있습니다.

이것으로 Java에서 파일 및 디렉토리의 속성과 메타데이터를 조회하는 방법에 대해 간단히 알아보았습니다.