투케이2K

640. (Android/Java) [유틸 파일] getInternalUsedStorageSpace : 내부 저장소 사용한 용량 크기 구하기 - StatFs 본문

Android

640. (Android/Java) [유틸 파일] getInternalUsedStorageSpace : 내부 저장소 사용한 용량 크기 구하기 - StatFs

투케이2K 2023. 9. 7. 22:13

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] getInternalUsedStorageSpace : 내부 저장소 사용한 용량 크기 구하기
    // -----------------------------------------------------------------------------------------
    public static String getInternalUsedStorageSpace(Context mContext) {

        /**
         * // -----------------------------------------
         * [getInternalUsedStorageSpace 메소드 설명]
         * // -----------------------------------------
         * 1. 내부 저장소 사용한 용량 크기 구하기
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         *   C_App.getInternalUsedStorageSpace(A_Intro.this);
         *
         * // -----------------------------------------
         * 3. 리턴 데이터 : 1 (GB)
         * // -----------------------------------------
         * 4. 추가 설명 :
         *
         * - StatFs 는 file System 의 정보를 전달해주는 클래스입니다
         * // -----------------------------------------
         * */


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

        double kilobyte = 0.0;
        double megabyte = 0.0;
        double gigabyte = 0.0;


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

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

            long byteSize = stat.getTotalBytes() - stat.getAvailableBytes(); // [사용한 용량 확인 byte]

            if (byteSize > 0){

                kilobyte = byteSize / 1024; // [파일 kilobyte 크기]
                megabyte = kilobyte / 1024; // [파일 megabyte 크기]
                gigabyte = megabyte / 1024; // [파일 gigabyte 크기]

                if (gigabyte > 0){
                    returnData = String.format("%.2f", gigabyte) + " (GB)"; // 소수점 2자리 까지만 출력
                }
                else if (megabyte > 0){
                    returnData = String.format("%.2f", megabyte) + " (MB)"; // 소수점 2자리 까지만 출력
                }
                else if (kilobyte > 0){
                    returnData = String.format("%.2f", kilobyte) + " (KB)"; // 소수점 2자리 까지만 출력
                }
                else {
                    returnData = String.format("%.2f", byteSize) + " (Byte)"; // 소수점 2자리 까지만 출력
                }

            }
            else {
                returnData = "0 (Byte)";
            }

        } catch (Exception e) {
            S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e);
        }


        // [로그 출력 실시]
        ///*
        // ===============================================================
        S_Log._D_("내부 저장소 사용한 용량 크기 확인", new String[]{
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================
        // */


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

[결과 출력]

 

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_App.getInternalUsedStorageSpace(C_App.java:7690)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2023-09-07 15:54:26 목요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 내부 저장소 사용한 용량 크기 확인]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: 26.27 (GB)]
D///===========//: ================================================

 

반응형
Comments