본문 바로가기

Java

java - 파일에서 확장자만, 파일명만 구하기?


검색해보니 아래와 같은 방법이 많이 포스팅되어 있던데


int pos = strFileName.lastIndexOf"." );
String ext = strFileName.substring( pos + 1 );
cs



대신에 org.apache.commons.io.FilenameUtilsgetExtension() 메서드를 쓸 수 있습니다. 

파일명이 test.png 라면 "png" 가 리턴되고 "a/b/c.png" 의 경우에도 png만 리턴합니다. 


String extension = FilenameUtils.getExtension(uploadfile.getOriginalFilename());
cs


반대로 확장자를 제외한 파일명만 구하는 경우도 아래와 같은 글이 많은데


String fileName = file.getName();
int pos = fileName .lastIndexOf(".");
String _fileName = fileName.substring(0, pos);
cs


마찬가지로 아래와 같이 getBaseName() 메서드를 쓸 수 있습니다. (위 코드가 내부적으로 구현되어 있음)

test.png 일 때 test 만 리턴되고 "a/b/c.txt" 의 경우도 c 만 리턴합니다.


String fileName = FilenameUtils.getBaseName(uploadfile.getOriginalFilename());
cs