투케이2K

339. (AndroidStudio/android/java) [유틸 파일] 파일 앱 캐시 및 데이터 삭제 실시 - File App Cache 본문

Android

339. (AndroidStudio/android/java) [유틸 파일] 파일 앱 캐시 및 데이터 삭제 실시 - File App Cache

투케이2K 2022. 9. 16. 10:36

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java

 

[소스 코드]

    // TODO [앱 캐시 초기화 수행 실시]
    public static void clearAppCache(Context mContext){

        /**
         * // -----------------------------------------
         * [clearAppCache 메소드 설명]
         * // -----------------------------------------
         * 1. 애플리케이션 앱 캐시 삭제 수행 메소드
         * // -----------------------------------------
         * 2. 호출 방식 : C_Util.clearAppCache(A_Main.this);
         * // -----------------------------------------
         * 3. 확인 방법 : 애플리케이션 설정 >> 캐시 용량 확인
         * // -----------------------------------------
         * */

        try {
            File cache = mContext.getCacheDir();
            if(cache != null && cache.exists() == true){
                Log.i("---","---");
                Log.w("//===========//","================================================");
                Log.i("","\n"+"[C_Util >> clearAppCache() :: 앱 캐시 폴더 존재 확인 및 삭제 수행]");
                Log.i("","\n"+"[url :: "+String.valueOf(cache.toURI())+"]");
                Log.i("","\n"+"[getName :: "+String.valueOf(cache.getName())+"]");
                Log.i("","\n"+"[cacheList :: "+String.valueOf(Arrays.toString(cache.list()))+"]");
                Log.w("//===========//","================================================");
                Log.i("---","---");

                try {
                    // [앱 캐시 삭제 수행 실시]
                    cache.delete();

                    deleteCache(cache);
                }
                catch (Exception ex){
                    ex.printStackTrace();
                }

            }
            else {
                Log.i("---","---");
                Log.e("//===========//","================================================");
                Log.i("","\n"+"[C_Util >> clearAppCache() :: 앱 캐시 폴더 존재 하지 않음]");
                Log.e("//===========//","================================================");
                Log.i("---","---");
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }





    // TODO [앱 캐시 및 데이터 초기화 수행 실시]
    public static void clearAppData(Context mContext){

        /**
         * // -----------------------------------------
         * [clearAppData 메소드 설명]
         * // -----------------------------------------
         * 1. 애플리케이션 앱 캐시 및 데이터 삭제 수행 메소드
         * // -----------------------------------------
         * 2. 호출 방식 : C_Util.clearAppData(A_Main.this);
         * // -----------------------------------------
         * 3. 확인 방법 : 애플리케이션 설정 >> 데이터, 캐시 용량 확인
         * // -----------------------------------------
         * */

        try {
            File cache = mContext.getCacheDir();
            File appDir = new File(cache.getParent());
            if(appDir != null && appDir.exists() == true){
                Log.i("---","---");
                Log.w("//===========//","================================================");
                Log.i("","\n"+"[C_Util >> clearAppData() :: 앱 캐시 및 데이터 폴더 존재 확인 및 삭제 수행]");
                Log.i("","\n"+"[url :: "+String.valueOf(appDir.toURI())+"]");
                Log.i("","\n"+"[getName :: "+String.valueOf(appDir.getName())+"]");
                Log.i("","\n"+"[cacheList :: "+String.valueOf(Arrays.toString(appDir.list()))+"]");
                Log.w("//===========//","================================================");
                Log.i("---","---");

                try {
                    // [앱 캐시 및 데이터 삭제 수행 실시]
                    appDir.delete();

                    deleteCache(appDir);
                }
                catch (Exception ex){
                    ex.printStackTrace();
                }

            }
            else {
                Log.i("---","---");
                Log.e("//===========//","================================================");
                Log.i("","\n"+"[C_Util >> clearAppData() :: 앱 캐시 및 데이터 폴더 존재 하지 않음]");
                Log.e("//===========//","================================================");
                Log.i("---","---");
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }





    // TODO [앱 캐시 초기화 로직 메소드]
    public static boolean deleteCache(File dir){
        // [파일이 Null 인지 Null 이 아니라면 폴더 인지 체크 실시]
        if(dir != null && dir.isDirectory()){

            // [Null 도 아니고 폴더도 아니라면 폴더안 파일 리스트를 호출]
            String[] children = dir.list();

            // [파일 리스트를 반복문으로 호출]
            for(String child : children){
                try {
                    // [파일 리스트중 폴더가 존재할 수 있기 때문에 재귀호출]
                    boolean isSuccess = deleteCache(new File(dir, child));
                    if(!isSuccess){
                        return false;
                    }
                }
                catch (Exception e){
                    e.printStackTrace();
                    return false;
                }
            }
        }
        return dir.delete();
    }

 

반응형
Comments