본문 바로가기
카테고리 없음

자바로 폴더(디렉토리),파일 복사하기

by sftt 2023. 12. 27.

자바로 폴더(디렉토리) 복사하기

파일과 폴더를 복사하는 작업은 프로그래밍에서 자주 사용되는 기능 중 하나입니다. 이 포스팅에서는 자바를 사용하여 폴더(디렉토리)와 파일을 복사하는 방법을 알아보겠습니다.

자바에서 폴더와 파일 복사를 위해 사용할 수 있는 가장 일반적인 방법은 java.nio.file 패키지를 사용하는 것입니다. 이 패키지는 Java 7부터 도입되었습니다.

폴더 복사하기

자바에서 폴더를 복사하기 위해 Files 클래스의 copy 메서드를 사용할 수 있습니다. 다음은 폴더를 복사하는 예제입니다.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

public class FolderCopyExample {
    public static void main(String[] args) {
        String sourcePath = "/path/to/source/folder";
        String destinationPath = "/path/to/destination/folder";

        try {
            Path source = Path.of(sourcePath);
            Path destination = Path.of(destinationPath);

            Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
            System.out.println("폴더 복사가 완료되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 sourcePathdestinationPath는 각각 복사할 폴더의 경로와 복사된 폴더를 저장할 경로를 나타냅니다. StandardCopyOption.REPLACE_EXISTING 옵션은 동일한 이름의 폴더가 이미 존재하는 경우에도 덮어쓰기를 수행하도록 합니다.

파일 복사하기

파일을 복사하기 위해서도 Files 클래스를 사용할 수 있습니다. 다음은 파일을 복사하는 예제입니다.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

public class FileCopyExample {
    public static void main(String[] args) {
        String sourcePath = "/path/to/source/file.txt";
        String destinationPath = "/path/to/destination/file.txt";

        try {
            Path source = Path.of(sourcePath);
            Path destination = Path.of(destinationPath);

            Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
            System.out.println("파일 복사가 완료되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 sourcePathdestinationPath는 각각 복사할 파일의 경로와 복사된 파일을 저장할 경로를 나타냅니다.

진행 상황 표시하기

복사 작업이 큰 파일이나 폴더의 경우에는 복사에 시간이 걸릴 수 있습니다. 이때 진행 상황을 표시해 사용자에게 진행 중임을 알려주는 것이 좋습니다.

import java.io.IOException;
import java.nio.file.CopyOption;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

public class FileCopyWithProgressExample {
    public static void main(String[] args) {
        String sourcePath = "/path/to/source/file.txt";
        String destinationPath = "/path/to/destination/file.txt";

        try {
            Path source = Path.of(sourcePath);
            Path destination = Path.of(destinationPath);

            CopyOption[] options = new CopyOption[]{
                    StandardCopyOption.REPLACE_EXISTING,
                    StandardCopyOption.COPY_ATTRIBUTES
            };

            Files.copy(source, destination, options);
            System.out.println("파일 복사가 완료되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 Files.copy 메서드의 options 매개변수를 통해 추가적인 옵션을 설정하여 복사 작업을 진행하고 있습니다.

이제 자바로 폴더(디렉토리)와 파일을 복사하는 방법에 대해 알아보았습니다. java.nio.file 패키지를 사용하면 간단하게 폴더와 파일을 복사할 수 있으며, 필요에 따라 옵션을 설정하여 원하는 동작을 수행할 수 있습니다.

댓글