투케이2K

472. (kotlin/코틀린) [유틸 파일] getInnerStorageSize : 휴대폰 내장 저장 공간 크기 확인 - StatFs 본문

Kotlin

472. (kotlin/코틀린) [유틸 파일] getInnerStorageSize : 휴대폰 내장 저장 공간 크기 확인 - StatFs

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

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

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

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


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


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

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

                    val stat = StatFs(Environment.getExternalStorageDirectory().path)

                    val blockSize = stat.blockSizeLong
                    val totalBlocks = stat.blockCountLong

                    val size = totalBlocks * blockSize

                    val units = arrayOf("B", "KB", "MB", "GB", "TB")
                    val digitGroups = (Math.log10(size.toDouble()) / Math.log10(1024.0)).toInt()

                    returnData = DecimalFormat("#,##0.#").format(size / Math.pow(1024.0, digitGroups.toDouble())) + " " + units[digitGroups]
                    M_LOG = "[SUCCESS] :: Inner Storage Size Check"

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

            } catch (e: Exception) {
                M_LOG = "[Exception] :: " + e.message.toString()
                S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e)
            }


            // [로그 출력 실시]
            ///*
            // ===============================================================
            S_Log._D_("휴대폰 내장 저장 공간 크기 확인", arrayOf(
                "M_LOG :: $M_LOG",
                "RETURN :: $returnData"

            ))
            // ===============================================================
            // */


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

[결과 출력]

 

 

반응형
Comments