투케이2K

763. (Android/Java) [유틸 파일] getInnerStorageSize : 휴대폰 내장 저장 공간 크기 확인 - StatFs 본문

Android

763. (Android/Java) [유틸 파일] getInnerStorageSize : 휴대폰 내장 저장 공간 크기 확인 - StatFs

투케이2K 2024. 4. 6. 17:39

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] getInnerStorageSize : 휴대폰 내장 저장 공간 크기 확인
    // -----------------------------------------------------------------------------------------
    public static String getInnerStorageSize(Context mContext) {

        /**
         * // -----------------------------------------
         * [getInnerStorageSize 메소드 설명]
         * // -----------------------------------------
         * 1. 휴대폰 내장 저장 공간 크기 확인
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         * C_App.getInnerStorageSize(A_Intro.this);
         *
         * // -----------------------------------------
         * 3. 리턴 데이터 :
         *
         * 256 GB
         * // -----------------------------------------
         * 4. 참고 내용 :
         *
         * + 및 - 오차가 발생할 수 있습니다
         * // -----------------------------------------
         * */


        // [리턴 값 선언]
        String returnData = "";
        String M_LOG = "";


        // [로직 처리 실시]
        try {

            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) == true){

                StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());

                long blockSize = stat.getBlockSizeLong();
                long totalBlocks = stat.getBlockCountLong();

                long size = totalBlocks * blockSize;

                final String[] units = new String[] { "B", "KB", "MB", "GB", "TB" };
                int digitGroups = (int) (Math.log10(size) / Math.log10(1024));

                returnData = new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups)) + " " + units[digitGroups];

                M_LOG = "[SUCCESS] :: Inner Storage Size Check";

            }
            else {
                M_LOG = "[ERROR] :: MEDIA_MOUNTED";
            }

        } catch (Exception e) {
            M_LOG = "[Exception] :: " + String.valueOf(e.getMessage());
            S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e);
        }


        // [로그 출력 실시]
        ///*
        // ===============================================================
        S_Log._D_("휴대폰 내장 저장 공간 크기 확인", new String[]{
                "M_LOG :: " + String.valueOf(M_LOG),
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================
        // */


        // [리턴 반환 실시]
        return returnData;
    }
 

[결과 출력]

 

 

반응형
Comments