투케이2K

420. (kotlin/코틀린) [유틸 파일] fileDelete : 파일 삭제 수행 메소드 - File delete 본문

Kotlin

420. (kotlin/코틀린) [유틸 파일] fileDelete : 파일 삭제 수행 메소드 - File delete

투케이2K 2023. 9. 14. 21:06

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [RETURN] fileDelete : 특정 파일 삭제 수행 메소드
        // -----------------------------------------------------------------------------------------
        fun fileDelete(deletePath: String, deleteFile: String): Boolean {

            /**
             * // -----------------------------------------
             * [fileDelete 메소드 설명]
             * // -----------------------------------------
             * 1. 특정 파일 삭제 수행 메소드
             * // -----------------------------------------
             * 2. 호출 방식 :
             *
             * C_App.fileDelete("/storage/emulated/0/Download", "copy.txt")
             *
             * // -----------------------------------------
             * 3. 리턴 데이터 : 삭제 성공 true / 아니면 false
             * // -----------------------------------------
             * 4. 추가 설명 :
             *
             * - 외부 저장소에는 dir 에 file, cache 등의 공간이 생성됩니다
             * - 외부 저장소는 write/read 시 permission이 필요합니다
             * - 외부 저장소에 공용 전용 폴더에는 다운로드 폴더 등이 있습니다
             * - [공통 전용] 외부 저장소 형태 : /storage/emulated/0/
             * // -----------------------------------------
             */


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


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

                // [인풋값 널체크 실시]
                if (C_Util.stringNotNull(deletePath) === true
                    && C_Util.stringNotNull(deleteFile) === true) {

                    // [파일 지정] : [폴더를 삭제하기 위해서는 폴더안에 저장되어 있는 자식들을 모두 삭제한 후에 삭제해야함]
                    val file = File(deletePath)


                    // [파일 경로 존재 여부 확인]
                    if (file.exists() == true) {

                        val files = file.listFiles()

                        if (files != null && files.size > 0) {

                            for (i in files.indices) {

                                val fileName = files[i].name.toString() // [파일 명칭 확인 : test.txt]

                                if (fileName.replace(" ".toRegex(), "").lowercase(Locale.getDefault()).contains(deleteFile.replace(" ".toRegex(), "").lowercase(Locale.getDefault())) == true) {
                                    returnData = files[i].delete() // [파일 삭제 수행]
                                    break
                                }
                            }

                            m_log = if (returnData == true) {
                                "[SUCCESS] : File Delete"
                            } else {
                                "[ERROR] : Delete File Search Not Found"
                            }

                        } else {
                            m_log = "[ERROR] : Child File Not Found"
                        }

                    } else {
                        m_log = "[ERROR] : File Path Not Exists"
                    }

                } else {
                    m_log = "[ERROR] : Input Data Is Null"
                }

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


            // [로그 출력 실시]
            ///*
            // ===============================================================
            S_Log._D_("파일 삭제 수행 실시", arrayOf(
                "INPUT [deletePath] :: $deletePath",
                "INPUT [deleteFile] :: $deleteFile",
                "M_LOG :: $m_log",
                "RETURN :: $returnData"
            ))
            // ===============================================================
            // */


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

 

반응형
Comments