반응형
http://krespo.net/50
File Upload를 수행할때 이전에 있던 파일과 비교하여 같은 이름이 있을경우 파일명 뒤에 숫자를 붙여주는 역할을 한다.사용 예)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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 ; } } } |
다음과 같이 사용할 수 있다.
1 2 | File file = new File(UploadUtil.SAVE + bean.getFileFileName()); file = new FileRenamePolicy().rename(file); |
반응형
'Web > JSP_SERVLET' 카테고리의 다른 글
라디오버튼, 체크박스, 셀렉트 박스 db값 불러와서 뿌려주기 (0) | 2016.05.13 |
---|---|
문자열 구분자 분리, 주의사항 (0) | 2016.05.02 |
첨부파일 삭제 소스 (0) | 2016.03.11 |
셀렉트박스 db 값, 선택 (0) | 2016.03.11 |
파일 다운로드 패키지화. 다운 ( 삭제도 보기 ) (0) | 2016.03.10 |
댓글