Java의 현재 디렉토리에서 새 디렉토리로 파일 이동

Mehvish Ashiq 2023년10월12일
  1. Java NIO의 Files.move() 메소드를 사용하여 현재 디렉토리에서 새 디렉토리로 파일 이동
  2. renameTo() 메소드를 사용하여 현재 디렉토리에서 새 디렉토리로 파일 이동
Java의 현재 디렉토리에서 새 디렉토리로 파일 이동

이 자습서에서는 Java에서 파일을 이동하는 다양한 방법을 제공합니다. 파일을 한 디렉토리에서 다른 디렉토리로 로컬(동일한 시스템에서)로 이동하는 두 가지 방법에 대해 알아보겠습니다.

이러한 메소드에는 [Java NIO](New Input Output) 패키지의 Files.move() 메소드와 Java.io.File 패키지에 포함된 renameTo() 메소드가 포함됩니다.

Java NIO의 Files.move() 메소드를 사용하여 현재 디렉토리에서 새 디렉토리로 파일 이동

Java 7 이상이 있으면 다음 솔루션을 사용할 수 있습니다.

예제 코드:

import java.io.IOException;
import java.nio.file.*;

public class MoveFile {
  public static void main(String[] args) {
    Path sourcePath = Paths.get("./moveFile.txt");
    Path targetPath = Paths.get(System.getProperty("user.home") + "/Desktop/Files/moveFile.txt");

    try {
      Files.move(sourcePath, targetPath);
    } catch (FileAlreadyExistsException ex) {
      System.out.println("The target path already has a target file");
    } catch (IOException exception) {
      System.out.format("I/O error: %s%n", exception);
    }
  }
}

main 메소드에는 이동해야 하는 파일의 소스 경로와 대상 경로가 필요합니다. Paths.get() 메소드를 사용하여 소스 파일의 경로를 검색하고 sourcePath라는 Path 유형 변수에 저장합니다.

그런 다음 Paths.get() 메소드를 다시 사용하여 원하는 위치와 System.getProperty("user.home")를 사용하여 액세스하는 사용자의 홈 디렉토리를 연결하여 대상 경로를 가져옵니다.

Files.move() 메소드는 이동해야 하는 파일의 소스 경로와 대상 경로를 가져와 파일 이름을 변경하지 않고 sourcePath에서 targetPath로 이동합니다.

Files.move() 메소드는 IOException 또는 FileAlreadyExistsException을 유발할 수 있기 때문에 try 블록으로 묶여 있습니다. 그러나 이러한 예외는 catch 블록에서 적절하게 처리됩니다.

FileAlreadyExistException을 피하려면 다음과 같이 REPLACE_EXISTING 옵션을 사용하여 targetPath에 있는 파일을 교체할 수 있습니다.

Files.move(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);

그리고 targetPath에 새 이름을 가진 파일을 갖고 싶다면 sourcePathtargetPath는 동일하게 유지하지만 파일 이름은 다음과 같이 변경합니다.

Path sourcePath = Paths.get("./moveFile.txt");
Path targetPath = Paths.get(System.getProperty("user.home") + "/Desktop/Files/newMoveFile.txt");

renameTo() 메소드를 사용하여 현재 디렉토리에서 새 디렉토리로 파일 이동

Java 6이 있는 경우 다음 솔루션이 선호됩니다.

예제 코드:

import java.io.*;

public class MoveFile {
  public static void main(String[] args) {
    File file = new File(".\\moveFile.txt");

    if (file.renameTo(new File("E:\\moveFile.txt"))) {
      System.out.println("File is moved successfully");
    } else {
      System.out.println("File is not moved");
    }
  }
}

이 코드 조각은 또한 renameTo() 메서드를 사용하여 지정된 파일을 한 위치에서 다른 위치로 이동합니다.

renameTo() 메서드는 새 추상 대상 경로를 사용하여 파일의 이름을 바꾸고(새 이름을 지정했지만 이 솔루션을 위해 이름을 바꾸지 않은 경우) 파일을 대상 위치로 이동합니다.

파일이 성공적으로 이동되면 true를 반환하고 파일이 이동되었음을 나타내는 메시지를 인쇄하고 지정된 파일이 이동되지 않으면 경고를 표시합니다. 위에 주어진 코드를 볼 수 있습니다.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - Java File