특정 디렉토리 내 파일목록 가져오기

|




일단 코드먼저...
getFileList (Language : java)
  1. private void getFileList(File targetPath, ArrayList arr) {
  2.     long timeBefore = 86400;        //하루(86400초) 이전 수정된 파일만.
  3.  
  4.     if(targetPath.isDirectory()) {
  5.         String [] fl = targetPath.list();
  6.         File tmpFile = null;
  7.         long nTmp;
  8.         int filecnt = 0;
  9.        
  10.         for(int i=0;i<fl.length;i++) {
  11.             tmpFile = new File(targetPath.getAbsolutePath()+"/"+fl[i]);
  12.             if(tmpFile.isDirectory()) {
  13.                 getFileList(tmpFile, arr);
  14.             } else {
  15.                 if(fl[i].substring(fl[i].lastIndexOf(".")).toUpperCase().equals(".JPG")) {    //확장자가 jpg인 경우만
  16.                     nTmp = tmpFile.lastModified();
  17.                     nTmp = new java.util.Date().getTime() - nTmp;
  18.                     nTmp /= 1000;   //ms를 초단위로 변경
  19.                     if(nTmp <= timeBefore) {                //시간내 변경된 파일만
  20.                         arr.add(targetPath.getAbsolutePath()+"/"+fl[i]);
  21.                         filecnt++;
  22.                     }
  23.                 }
  24.             }
  25.         }
  26.  
  27.     } else {
  28.     }
  29. }
  30.  


이녀석 역시 재귀호출로 디렉토리 안에 디렉토리디렉토리....줄줄이 엮어들어가서 죄다 뽑아오는 로직..
24시간 이전 변경된 JPG파일 리스트만 뽑아오지만 뭐 쓰기나름임다... 수정은 알아서...

유닉스기반에서 작성한거라 디렉토리구분자가 다른 윈도우(역슬래쉬..죠..)에서 잘 작동할지는 의문?

간단하게 어케쓰느냐 궁금하신분들을 위해...


이~그잼플. (Language : java)
  1. ArrayList arr = new ArrayList();
  2. // /home/hy054nz는 반드시 디렉토리.
  3. // hy054nz안의 디렉토리와 파일들 목록이 절대경로로 arr로 들어감
  4. getFileList(new File("/home/hy054nz"), arr);
  5.  
  6. for(int i=0;i<arr.size();i++) {
  7.     out.println((String)arr.get(i));
  8. }


뭐.. 이런식으로 쓰면 되겠죠?
And