코딩/JAVA

[JAVA] renameTo와 move 함수를 사용하여 파일 이름 변경 및 이동하는 방법

밤유리 2022. 11. 21. 23:08
반응형

Java에서 파일을 이동하는 방법과 이름을 변경하는 방법은 크게 다르지 않다는 것을 알았다.

renameTomove 함수는 파일 이동과 파일 이름 변경이라는 결과는 같지만, 사용하는 과정에서 조금 다르다는 것을 알았다.

 

 


 

 

renameTo(File file) 사용

파일은 따로 이동하지 않고, 같은 경로에서 파일 이름만 변경하는 코드를 작성해 보았다. 

변경 전 파일명과 변경 후 파일 명, 파일 경로를 미리 선언해 두었다.

 

// 파일 경로
String filePath = "C:\\test\\";
// 변경 전 파일명
String oldName = "old.txt";
// 변경 후 파일명
String newName = "new.txt";


// renameTo 사용
boolean result = useRenameTo(filePath, oldName, newName);
System.out.println("파일 이름 변경 결과 : " + result);

 

renameTo함수는 성공 여부에 따라 true 또는 false를 반환한다.

useRenameTo라는 함수를 따로 만들어 구현해 보았다.

 

/**
 * renameTo 사용
 * */
public static boolean useRenameTo(String filePath, String oldName, String newName) {

    // 변경 전 파일 생성
    File oldFile = new File(filePath + oldName);
    // 변경 후 파일 생성
    File newFile = new File(filePath + newName);

    // True 또는 False 반환
    boolean result = oldFile.renameTo(newFile);

    return result;
}

 

 

실행하기 전에는 old.txt였지만, 실행 후에는 new.txt로 변경된 것을 확인 할 수 있다.

왼쪽(변경 전), 오른쪽(변경 후)

 

콘솔로 확인한 결과는 변경이 성공하였으므로 true가 출력되는 것을 확인 할 수 있다.

 

 

 

 

move(Path path) 사용

이번에도 파일은 따로 이동하지 않고, 같은 경로에서 파일 이름만 변경하는 코드를 작성해 보았다.

변경 전 파일명과 변경 후 파일 명, 파일 경로를 미리 선언해 두었다.

 

// 파일 경로
String filePath = "C:\\test\\";
// 변경 전 파일명
String oldName = "old.txt";
// 변경 후 파일명
String newName = "new.txt";


// move 사용
Path result = useMove(filePath, oldName, newName);
System.out.println("변경된 파일 이름 : " + result.toString());

 

move함수는 성공 시, 해당 파일의 Path 객체를 반환한다.

useMove라는 함수를 따로 만들어 구현해 보았다.

RuntimeException이 발생해서 그런지 꼭 try/catch나 throws 예외 처리를 해 주지 않으면 안 되었다. 

 

/**
 * move 사용
 * */
public static Path useMove(String filePath, String oldName, String newName) {

    // 변경 전 파일 경로
    Path oldPath = Paths.get(filePath + oldName);
    // 변경 후 파일 경로
    Path newPath = Paths.get(filePath + newName);

    // 결과 
    Path result;

    try {
        // Path 반환
        result = Files.move(oldPath, newPath);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    return result;
}

 

 

아까와 마찬가지로 실행하기 전에는 old.txt였지만, 실행 후에는 new.txt로 변경된 것을 확인 할 수 있다.

 

왼쪽(실행 전), 오른쪽(실행 후)

 

콘솔로 Path 객체를 toString으로 출력해 본 결과 다음과 같이 출력되었다.

 

 

 

 


 

 

이상, 오늘도 밤톨만큼 코딩했다.

 

 

참고
반응형