2014-12-26 2 views
0

하위 디렉토리를 포함한 디렉토리를 삭제할 수있는 좋은 코드를 찾았지만, 예를 들어 존재하는 (하위) 디렉토리가 삭제되지 않도록 구현할 수 있습니까?삭제 루프에있는 디렉토리 건너 뛰기

도움 주셔서 감사합니다.

public static boolean deleteDir(File dir) { 
    if (dir.isDirectory()) { 
     String[] children = dir.list(); 
     for (int i=0; i<children.length; i++) { 
       boolean success = deleteDir(new File(dir, children[i])); 
       if (!success) { 
        return false; 
      } 
     } 
    } 
     return dir.delete(); 
} 
+0

당신이 포함되어 그 하위 디렉토리를 삭제하지 않으 의미하십시오 "." 접두어로? 분명히하십시오! –

+0

@Deep Mehta 예, 정확히 말하면 .data는 하위 디렉토리를 포함하여 나머지는 삭제 된 상태로 유지되어야합니다. – Bjorn

답변

0

public static boolean deleteDir(File dir) { 
    if (dir.isDirectory()) { 
     String[] children = dir.list(); 
     for (int i=0; i<children.length; i++) { 
      if(children[i].equals("data")||children[i].equals(".data")) 
       continue; 
      else 
       if (!deleteDir(new File(dir, children[i]))) 
        return false; 
     } 
    } 
    return dir.delete(); 
} 
+0

많은 thx이 나를 위해 일했습니다. – Bjorn

0

어쩌면 당신이 시도 할 수 있습니다 :

public static boolean deleteDir(File dir) { 
if (dir.isDirectory()) { 
    String[] children = dir.list(); 
    for (int i=0; i<children.length; i++) { 
      if(children.equals("data")){ 
       boolean success = deleteDir(new File(dir, children[i])); 
       if (!success) { 
       return false; 
       } 
      } 
    } 
} 
    return dir.delete(); 

}