본문 바로가기

Web/현업 경험

자바 파일 이름 변경 하기

ASIS 사이트에서 -> TOBE로 마이그레이션 통합 작업을 해야하는 상황이다.

너무 환경이 틀리다보니 SQL문으로 파일명 까지 변경을 해야하는 상황이 온것이다.

 

일일이 작업하기 짜증나서 그냥 만들어 버렸다..

대략 파일 갯수는 550개 정도 이름 및 변경 쿼리 업데이트 및 마이그레이션 작업까지;;

수 작업으로 하게 되면 아마 하루 걸리고도 정신이 피폐해질거 같아 그냥 과감하게 만들었다..

 

만들어서 작업하니 오전에 끝내 버렸다 ! 

 

str 변수는 추가 해야할 seq 번호 

게시물이 50개인 관계로 수기로 처리 하였다.

 

package exam;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

public class Exam04 {
	public static void main(String[] args) {
		List<String> query = new ArrayList<String>();
		
		List<String> str = new ArrayList<String>() {
			{
//				add("58977");
//				add("58976");
			}
		};

		// For 문 돌기
		for(int i = 0; i < str.size(); i++) {
			String path = "D:/파일/상세 글 이미지/" + str.get(i) + "/";
			String status = allListFile(path, query, str.get(i));
			System.out.println("결과값==>" + status);
		}
		
		// 쿼리 명령어 불러오기
		for(int j = 0; j < query.size(); j++) {
			System.out.println(query.get(j));
		}
	}
	
	public static String allListFile(String dirPath, List<String> query, String seq) {
		//디렉토리경로
		String filePath = dirPath;
		File path = new File(filePath);
		
		// 하위파일들 파일배열에 넣는다.
		File[] list = path.listFiles();

		// 저장될 파일명
		String fileName = "";
		
		// 변경될 파일명
		String newFileName = "";
		
		for(int i = 0; i < list.length; i++) {
			// 파일명을 저장
			fileName = list[i].getName();
			
			//확장자를 검색한다. jpg, bmp 2개만, 차후 추가, 해당 확장자가 많으면 배열에 넣고 검증한다.
			if (fileName.toLowerCase().indexOf(".jpg") > 0) {
				newFileName = UUID.randomUUID().toString() + ".jpg";
			} else if (fileName.toLowerCase().indexOf(".bmp") > 0) {
				newFileName = UUID.randomUUID().toString() + ".bmp";
			} else if (fileName.toLowerCase().indexOf(".png") > 0) {
				newFileName = UUID.randomUUID().toString() + ".png";
			} else if (fileName.toLowerCase().indexOf(".gif") > 0) {
				newFileName = UUID.randomUUID().toString() + ".gif";
			} else {// 확장자가 벗어나면 파일명 그대로 셋팅
				newFileName = fileName;
			}

			query.add("update board_file_edu set thumb1 = '" + newFileName + "' where seq = '" + seq + "' and refile_nm = '"+fileName+"';");
			
			
//			list[i].renameTo(new File(filePath+newFileName));
			list[i].renameTo(new File("D:/카드뉴스 파일/카드뉴스 상세 글 이미지/" + seq + "/"+newFileName));
		}

		// 끝난거 알려주는 리턴값
		return "CHANGE_END";
	}
}