[java]자바 파일 삭제 :: 개발/일상_Mr.lee

[java]자바 파일 삭제

Posted by Mr.mandu.
2016. 4. 6. 14:00 개발/java,spring

이번엔 파일과 하위 폴더들의 파일까지 삭제하는 과정을 알아보겠습니다.

간단해서 그냥 텍스트로 소스를 적어보겠습니다.


소스

public void deleteFolder(String parentPath) {

    File file = new File(parentPath);

    String[] fnameList = file.list();

    int fCnt = fnameList.length;

    String childPath = "";

    

    for(int i = 0; i < fCnt; i++) {

      childPath = parentPath+"/"+fnameList[i];

      File f = new File(childPath);

      if( ! f.isDirectory()) {

        f.delete();   //파일이면 바로 삭제

      }

      else {

        deleteFolder(childPath);

      }

    }

    

    File f = new File(parentPath);

    f.delete();   //폴더는 맨 나중에 삭제

    

  }

사용 예시

 deleteFolder(Path+"/"+folder+"/"); // 그냥 폴더의 위치 입니다.


설명해보면

    File file = new File(parentPath); 해당경로를 이용하여 File객체를 만듭니다.

그리고 file.list()로 해당 경로 안에 있는 파일, 폴더 등을 모두 얻어 옵니다.


대략 헷갈리는 부분이 여기라고 생각됩니다!

하위 폴더의 경로를 얻어오는 과정인데요, 차근차근 생각해보셔야 되요! 멘붕에 빠질수 있다는...

만약 현재 폴더에 

폴더 : a, b,c

파일 test.txt,  test2.txt

가 있다고 가정하면

childPath 는 

parentPath / a

parentPath / b

parentPath / c

parentPath / test.txt

parentPath / test2.txt

가 됩니다.


이후에는 해당 경로가 있는지 확인하고 다시 재귀로 돌립니다.

파일들은 확장자가있기 때문에 해당 경로가 없겠죠???