File Upload를 수행할때 이전에 있던 파일과 비교하여 같은 이름이 있을경우 파일명 뒤에 숫자를 붙여주는 역할을 한다.사용 예)
package com.myhome.upload.policy; import java.io.File; import java.io.IOException; public class FileRenamePolicy { public File rename(File f) { //File f는 원본 파일 if (createNewFile(f)) return f; //생성된 f가 중복되지 않으면 리턴 String name = f.getName(); String body = null; String ext = null; int dot = name.lastIndexOf("."); if (dot != -1) { //확장자가 없을때 body = name.substring(0, dot); ext = name.substring(dot); } else { //확장자가 있을때 body = name; ext = ""; } int count = 0; //중복된 파일이 있을때 //파일이름뒤에 a숫자.확장자 이렇게 들어가게 되는데 숫자는 9999까지 된다. while (!createNewFile(f) && count < 9999) { count++; String newName = body + count + ext; f = new File(f.getParent(), newName); } return f; } private boolean createNewFile(File f) { try { return f.createNewFile(); //존재하는 파일이 아니면 }catch (IOException ignored) { return false; } } }
다음과 같이 사용할 수 있다.
File file = new File(UploadUtil.SAVE + bean.getFileFileName()); file = new FileRenamePolicy().rename(file);
'Web > Source Utils' 카테고리의 다른 글
SpringMVC + iBatis 를 이용한 프로젝트 초기 설정 WAR (0) | 2010.01.29 |
---|---|
게시판 Paging Source Code (4) | 2009.09.06 |
iBatis - SqlMapClient class 만들어 주는 util (2) | 2009.08.08 |
Ajax XMLHttpRequest Object 생성 Util (0) | 2009.07.13 |
Struts 1 & iBatis : 회원 등록 & CRUD (0) | 2009.06.26 |