2011-09-12 5 views
0

저는 웹 사이트에서 텍스트를 많이 가져 오는 프로젝트를 만들고 있습니다. 일주일에 4 번 이미지를 다운로드하고 동일한 캐시에 덮어 씁니다.캐시가 가득 찼는 지 확인하는 방법은 무엇입니까?

내가 걱정하는 것은 캐시가 비트 맵 데이터를 저장하는 파일로 가득 차게되는 것입니다. 처음에는 약 1.45MB의 캐시를 차지하고 이미지를 가져올수록 더 커집니다.

새 이미지를 다운로드 할 때마다 이전 이미지가 지워지도록하려면 어떻게해야합니까?

아니면 애플리케이션 캐시의 정리에 대해 걱정할 필요가 없습니까? 워드 프로세서에서

답변

1

:

getCacheDir() 

은 파일 시스템의 응용 프로그램 특정 캐시 디렉토리의 절대 경로를 반환합니다. 이 파일은 장치의 저장 공간이 부족할 때 먼저 삭제 된 파일입니다. 이러한 파일을 삭제할 때 보장 할 수는 없습니다. 참고 :이 파일을 삭제하는 시스템에 의존해서는 안됩니다. 캐쉬 파일로 소비하는 공간의 양에 대해 항상 1MB와 같은 최대 값을 가져야하며, 해당 공간을 초과 할 때 파일을 프 i (prune)해야합니다.

당신에게 그것의 FileHandle 당신이 지울 수있는 업데이 트를 이동 파일을 이동 이름을 바꿉니다. filecheck 같은 생각할 수 있습니다 : file004 존재하는 경우, 그것을 제거하고, 새 파일을 만듭니다.

또는 더 부드러운 방법을 선호하는 경우 더 이상 필요하지 않은 파일에만 deleteOnExit() 플래그를 설정하십시오.

편집 : 확실히는 거기 당신은 응답 .. is..I 만 새 캐시 파일을 다운로드 할 때 이전 캐시 파일을 삭제할있는 유일한 방법에 대한

File cachedir = getCacheDir(); 
for (File f : cachedir.listFiles()) { 
    if(!f.getName().equals("newFiles")){ 
     f.delete(); 
    } 
} 
+0

좋아요 감사를 이동합니다. 이것은 약 4 일에 한 번씩 발생합니다. 그렇다면 새로운 캐시 이미지를 4 일마다 가져 오면 모든 선재 캐시 이미지를 삭제하는 방법은 무엇입니까? –

+0

좋아, 내 4 일간의 다운로드 서비스에서 나는 새 파일을 cachedir의 "new"라는 하위 디렉토리에 다운로드했다. "새"폴더를 제외하고 Cachedir 폴더 안의 모든 파일을 삭제할 것입니다. 새 파일을 새 폴더에서 cachedir로 옮기는 것보다 낫습니다. 그게 당신의 질문 이었습니까? 아니면 내가 잘못 이해 했습니까? – Michele

+0

그래 .. 나는 그 생각이 맘에 든다. 그래서 내 서비스에서 .. 나는 그저 모든 것을 지우고 4 일째에 새로운 이미지를 다운로드 할 수 있을까? –

관련 문제