투케이2K

419. (kotlin/코틀린) [유틸 파일] fileCopy : 파일 복사 수행 메소드 - Files.copy 본문

Kotlin

419. (kotlin/코틀린) [유틸 파일] fileCopy : 파일 복사 수행 메소드 - Files.copy

투케이2K 2023. 9. 14. 20:59
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [RETURN] fileCopy : 파일 복사 수행 메소드
        // -----------------------------------------------------------------------------------------
        fun fileCopy(originPath: String, copyPath: String): Boolean {

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


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


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

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

                    // [원본 파일 , 복사할 파일 지정]
                    val originFile = File(originPath)
                    val copyFile = File(copyPath)


                    // [파일 복사 수행] : REPLACE_EXISTING : 기존에 복사 파일이 존재하더라도 그대로 덮어쓴다
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                        Files.copy(originFile.toPath(), copyFile.toPath(), StandardCopyOption.REPLACE_EXISTING)

                        // [리턴 반환 실시]
                        returnData = true

                    }
                }

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


            // [로그 출력 실시]
            ///*
            // ===============================================================
            S_Log._D_("파일 복사 수행 실시", arrayOf(
                "INPUT [originPath] :: $originPath",
                "INPUT [copyPath] :: $copyPath",
                "RETURN :: $returnData"
            ))
            // ===============================================================
            // */


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

 

반응형
Comments