투케이2K

650. (Android/Java) [유틸 파일] fileCopy : 파일 복사 수행 메소드 - Files.copy 본문

Android

650. (Android/Java) [유틸 파일] fileCopy : 파일 복사 수행 메소드 - Files.copy

투케이2K 2023. 9. 14. 20:54

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

 

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

        /**
         * // -----------------------------------------
         * [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/
         * // -----------------------------------------
         * */


        // [리턴 값 선언]
        boolean returnData = false;


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

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

                // [원본 파일 , 복사할 파일 지정]
                File originFile = new File(originPath);
                File copyFile = new 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 (Exception e) {
            S_Log._printStackTrace_(null, S_FinalMsg.LOG_BUG_STATE, null, e);
        }


        // [로그 출력 실시]
        ///*
        // ===============================================================
        S_Log._D_("파일 복사 수행 실시", new String[]{
                "INPUT [originPath] :: " + String.valueOf(originPath),
                "INPUT [copyPath] :: " + String.valueOf(copyPath),
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================
        // */


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

 

반응형
Comments