sm 기술 블로그

[스프링부트] 파일 이름 변경 본문

스프링부트

[스프링부트] 파일 이름 변경

sm_hope 2022. 9. 11. 20:03

파일 혹은 폴더의 이름을 변경해야 할 상황이 생길 수 있다.

크게 

1. java.io.File => renameTo()

2. java.nio.file.move()

3. Guava

4. Apache Common IO

가 있지만 2,3,4는 이동을 통해 이름을 변경하는 것으로 만약  폴더내에 파일이 있다면 에러가 발생한다.

따라서 1번을 사용하고 그 예를 작성해보고자 한다.

 

java.io.File => renameTo()

    public void doModify(String title, String newTitle) {
        String root = System.getProperty("user.dir") + "\\src\\main\\resources\\static\\product_image\\";
        // 1. 원본 폴더
        File file = new File(root + product.title);
        // 2. 새로운 폴더
        File newFile = new File(root + productWriteForm.newTitle);
        // 폴더 이름을 변경해줌.
        file.renameTo(newFile);
   }

root에 폴더 도달하기 전 최상위 폴더까지의 경로를 작성해 준다.

System.getProperty("user.dir") 는 현재 프로젝트의 경로를 알아서 찾아내주기 때문에 좀 더 손 쉽게 경로를 작성할 수 있다.

나머지 부분은 각자 원하는 경로를 작성해주자.

 

원본 폴더와 새로운 폴더의 file을 만들어주고

원본 폴더.nameTo(새로운 폴더)

형식으로 작성하면 폴더내에 파일이 있더라도 문제없이 이름 변경이 가능하다.

Comments