2013-09-22 5 views
0

응용 프로그램 데이터를 지우는 코드가 있는데 응용 프로그램을 다시 시작한 후입니다. 모든 데이터가 다시 제공됩니다. 응용 프로그램 데이터 지우기, 다시 시작한 후에 다시 발생합니다.

public static void ClearApplicationData() { 
    File cacheDir = GetCurrentApplication().getCacheDir(); 
    File appDir = new File(cacheDir.getParent()); 
    if (appDir.exists()) { 
     String[] children = appDir.list(); 
     if (children == null) 
      return; 
     for (String s : children) { 
      if (!s.equalsIgnoreCase("lib")) 
      { 
       File dirToDelete = new File(appDir, s); 
            //delete directory code 

      } 
     } 
    } 
} 

그래서 위의 코드를 실행 한 후, 나는 응용 프로그램의 data 디렉토리를 확인하고 만 lib 디렉토리 왼쪽을했다. 하지만 다시 응용 프로그램을 실행하면 모든 디렉토리가 원래대로 되돌아갑니다. 하지만 응용 프로그램 관리> 앱 정보> 데이터 지우기를 사용하면 모든 것이 효과적입니다. 차이점이 뭐야 ?

+0

: 여기

유용한 링크입니다? – ozbek

답변

0

디렉토리를 어떻게 삭제 하시겠습니까? 파일 클래스는 비어 있지 않으면 디렉토리를 삭제하지 않습니다. 재귀 적 삭제 방법을 구현하거나 Apache Commons IO를 사용해야합니다. 난 당신이 '데이터 지우기'및 '캐시 지우기'사이에 차이가 있다는 것을 알고 생각 deleting folder from java

+0

네, 그 사실을 알고 있습니다. 끝까지 질문을 읽으십시오. 내가 말했듯이, 필요한 모든 디렉토리가 삭제됩니다. 하지만 앱을 다시 시작한 후에 다시 돌아옵니다. – xmen

+0

죄송합니다. 디렉토리에있는 파일도 다시 제공되는지 확인 했습니까? 아니면 디렉토리 구조 만 다시 나타 납니까? 어쩌면 안드로이드는 첫 번째 결재에서 생성 될 디렉토리가 필요합니다. – DanielGL

+0

공유 환경 설정 값은 기본값이 아닌 마지막 세트와 동일하게 유지됩니다. 모든 파일도 삭제됩니다. 디렉토리의 예 파일 또한 이전 값으로 돌아옵니다. 설정에서 데이터 지우기 만 완벽하게 작동합니다. – xmen

관련 문제