프로그래밍 언어/자바(JAVA)

자바(JAVA) - 폴더 파일명 변경

나아가는중 2021. 12. 18. 23:32
반응형

자바를 사용해서 원하는 폴더의 모든 파일명을 변경하는 방법입니다.

이 글과 보시는 분의 목적이나 방법이 다를 수 있습니다.

 

저는 알고리즘 폴더의 파일명들을 변경하고 싶어 이 코드를 작성하여 파일명을 변경하였습니다.

 

원하는 폴더의 절대 경로를 가져와 저장합니다

String path = "/Users/dlee/Desktop/Algorithm_Study/backjoon/";

절대 경로를 가져오는 방법은 워낙 다양해서 편한 방법으로 찾았다고 가정하겠습니다.

 

폴더를 가져오기 위해 java.io에 있는 File 클래스를 사용할 것입니다.

import java.io.File;

 

File클래스의 생성자 중 File(String pathname)으로 생성하면 입력한 pathname 경로 파일의 객체를 생성합니다.

File dir = new File(path);

 

폴더의 파일 전체를 변경하고 싶으므로 전체 파일 리스트를 가져옵니다.

File[] files = dir.listFiles();

 

파일 리스트를 순회하면서 파일명을 변경합니다.

 

newFile 변수는 새로 바뀔 파일의 파일명을 지정합니다.

앞의 path를 지정하지 않으면 현재 디렉토리 경로가 설정되므로 원하는 폴더의 절대 경로를 지정해줍니다.

저장할 경로와 원하는 파일명지정합니다. 저의 경우에는 현재 파일명 앞에 BOJ_를 붙여줍니다.

 

renameTo() 함수를 사용하여 폴더명을 변경합니다.

이 함수는 파일의 내용은 변하지 않고 파일명만을 변경해줍니다.

변경이 성공할 시 true, 실패시 false를 리턴해줍니다.

for (File file : files) {
    File newFile = new File(path + "BOJ_" + file.getName());
    file.renameTo(newFile);
}

 

전체 소스 코드입니다.

import java.io.File;

public class FolderNameChange {
    public static void main(String[] args) {
        String path = "/Users/dlee/Desktop/Algorithm_Study/backjoon/";
        File dir = new File(path);

        File[] files = dir.listFiles();

        for (File file : files) {
            File newFile = new File(path + "BOJ_" + file.getName());
            file.renameTo(newFile);
        }
    }
}
반응형