티스토리 뷰
폴더 정리 프로그램
- 평소 다운로드 폴더가 너무 더러워서.. 폴더를 생성해서 연관된 파일들을 넣어주면 어떨까 하는 생각이 들었다.
- 거창한 기능까진 아니고 파일을 확장자별로 폴더에 구분하여 넣어주는 기능을 구상했다.
구현방법
- 참고로 클래스를 생성한 후 메소드를 클래스 안에 추가하는 방식이다.
Divider 클래스 생성
- 간단한 테스트를 위해서 main 메소드를 추가해준다.
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
public class FolderClassifier {
File fs = new File("C:/Users/*****/Downloads"); //원하는 폴더 선택
public static void main(String args[]){
FolderClassifier fc = new FolderClassifier();
fc.doSeparate();
}
}
doSeparate() 메소드 구현
- 폴더의 모든 확장자 종류를 가져온 뒤 확장자별 일치하는 파일을 찾아 이동시킨다.
public void doSeparate(){
if(fs.isDirectory()){
File list[] = fs.listFiles();
ArrayList<String> arr = scanExtension(list); //파일 전체 스캔 통해 확장자 종류 파악
for(int i = 0; i < arr.size(); i++){
for(int j = 0; j < list.length; j++){
if(list[j].getName().endsWith("." + arr.get(i))){
moveFile(arr.get(i), list[j].getName(), fs.getPath() + "/" + list[j].getName(), fs.getPath());
}
}
}
}
}
public ArrayList<String> scanExtension(File list[]){
ArrayList<String> extensionList = new ArrayList<String>();
String fileName = list[0].getName();
extensionList.add(getExtension(fileName));
for(int i = 1; i < list.length; i++){
for(int j = 0; j < extensionList.size(); j++){
if(getExtension(list[i].getName()).equals(extensionList.get(j))){
break;
}
if(j == extensionList.size() - 1){ //중복이 되지 않았을 때
extensionList.add(getExtension(list[i].getName()));
}
}
}
return extensionList;
}
public String getExtension(String filename){
int pos = filename.lastIndexOf( "." );
String ext = filename.substring( pos + 1 ); // get file extension
return ext;
}
파일 이동 기능 구현
public String moveFile(String folderName, String fileName, String beforeFilePath, String afterFilePath) {
String path = afterFilePath+"/"+folderName;
String filePath = path+"/"+fileName;
File dir = new File(path);
if (!dir.exists()) { //폴더 없으면 폴더 생성
dir.mkdirs();
}
try{
File file =new File(beforeFilePath);
if(file.renameTo(new File(filePath))){ //파일 이동
return filePath; //성공시 성공 파일 경로 return
}else{
return null;
}
}catch(Exception e){
e.printStackTrace();
return null;
}
}
관련글
끝으로
이 글이 도움이 되었다면, 하단의 Google 광고 👎👎👎 한번씩 클릭 부탁 드립니다. 🙏🙏🙏
광고 클릭은 많은 힘이 됩니다!
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
(JAVA0 SerialVersionUID 정의 및 사용법 (0) | 2016.10.27 |
---|---|
JAVA Java.nio 클래스란 (0) | 2016.10.27 |
JAVA 역직렬화 : 객체 복구 (0) | 2016.10.26 |
(Java) 직렬화된 객체를 파일에 저장하는 방법 (0) | 2016.10.26 |
(Java) 파일(File) 이동(Move) 기능 구현방법 (0) | 2016.09.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- JavaFX Window Close
- effective java
- effectivejava
- intelij
- git
- 자전거 여행
- 텐트
- TableView
- 자바
- 배낭 여행
- 이펙티브
- Java UI
- windows
- 방통대 과제물
- 일본여행
- JavaFX
- JavaFX 종료
- JavaFX 테이블뷰
- JavaFX Table View
- 이펙티브 자바
- 이펙티브자바
- springboot
- 일본 자전거 여행
- 일본 배낭여행
- java
- 자전거
- 일본 여행
- 스프링부트
- 배낭여행
- 인텔리제이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함