스프링부트
[스프링부트] 파일 이름 변경
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(새로운 폴더)
형식으로 작성하면 폴더내에 파일이 있더라도 문제없이 이름 변경이 가능하다.