자바로 폴더(디렉토리) 복사하기
파일과 폴더를 복사하는 작업은 프로그래밍에서 자주 사용되는 기능 중 하나입니다. 이 포스팅에서는 자바를 사용하여 폴더(디렉토리)와 파일을 복사하는 방법을 알아보겠습니다.
자바에서 폴더와 파일 복사를 위해 사용할 수 있는 가장 일반적인 방법은 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();
}
}
}
위의 코드에서 sourcePath
와 destinationPath
는 각각 복사할 폴더의 경로와 복사된 폴더를 저장할 경로를 나타냅니다. 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();
}
}
}
위의 코드에서 sourcePath
와 destinationPath
는 각각 복사할 파일의 경로와 복사된 파일을 저장할 경로를 나타냅니다.
진행 상황 표시하기
복사 작업이 큰 파일이나 폴더의 경우에는 복사에 시간이 걸릴 수 있습니다. 이때 진행 상황을 표시해 사용자에게 진행 중임을 알려주는 것이 좋습니다.
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
패키지를 사용하면 간단하게 폴더와 파일을 복사할 수 있으며, 필요에 따라 옵션을 설정하여 원하는 동작을 수행할 수 있습니다.
댓글