SeouliteLab

[Java/자바] 특정 경로의 하위 파일, 폴더 탐색하기 (Files.walk) 본문

프로그래밍

[Java/자바] 특정 경로의 하위 파일, 폴더 탐색하기 (Files.walk)

Seoulite Lab 2024. 3. 11. 08:21

Java에서 특정 경로의 하위 파일 및 폴더를 탐색하는 작업은 파일 시스템을 조작하는 프로그램에서 매우 일반적입니다. 이번 글에서는 Files.walk 메서드를 사용하여 Java에서 특정 경로의 하위 파일과 폴더를 재귀적으로 탐색하는 방법을 알아보겠습니다.

1. Files.walk 메서드 소개

Files.walk 메서드는 지정된 경로에서 시작하여 하위 디렉토리를 재귀적으로 탐색하며, 각 디렉토리와 파일에 대한 스트림을 반환합니다. 이 메서드는 Java 8부터 도입되었으며, 경로, 최대 탐색 깊이, 탐색 옵션을 인수로 받습니다.

2. Files.walk 예제

아래는 Files.walk를 사용하여 특정 경로에서 시작하여 모든 파일과 디렉토리를 재귀적으로 탐색하는 예제입니다.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class FileWalker {
    public static void main(String[] args) {
        String directoryPath = "C:\\example";
        try (Stream<Path> paths = Files.walk(Paths.get(directoryPath))) {
            paths.forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. 예제 설명

위 예제는 "C:\\example" 디렉토리부터 시작하여 해당 경로의 모든 파일과 디렉토리를 출력합니다. try-with-resources 구문을 사용하여 스트림을 자동으로 닫아줍니다.

4. 주의 사항

Files.walk 메서드는 심볼릭 링크를 포함하여 디렉토리를 탐색하므로, 무한 루프에 빠질 가능성이 있습니다. 따라서, 탐색할 디렉토리를 선택할 때 심볼릭 링크를 주의하여야 합니다.