투케이2K

859. (Android/Java) [jsch] SFTP 라이브러리 - 원격 서버 파일 삭제 수행 실시 - deleteFile 본문

Android

859. (Android/Java) [jsch] SFTP 라이브러리 - 원격 서버 파일 삭제 수행 실시 - deleteFile

투케이2K 2024. 9. 1. 09:50

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

 

    // ------------------------------------------------------------------------------------------
    // TODO [SFTP 서버 파일 삭제 수행]
    // ------------------------------------------------------------------------------------------
    // TODO [라이브러리 설치 버전] : implementation group: 'com.jcraft', name: 'jsch', version: '0.1.54'
    // ------------------------------------------------------------------------------------------
    public synchronized boolean deleteFile(String sftpPath, String sftpFileName) {
        S_Log._D_("SFTP 서버 파일 삭제 수행", new String[]{ "sftpPath :: " + String.valueOf(sftpPath), "sftpFileName :: " + String.valueOf(sftpFileName) });


        /*
        D  ===================================================================
        [LOG :: CLASS PLACE :: com.example.javaproject.C_Module.C_SFTP_Client_Module.deleteFile(C_SFTP_Client_Module.java:705)]
        ----------------------------------------------------
        [LOG :: NOW TIME :: 2024-08-31 13:34:44 토요일]
        ----------------------------------------------------
        [LOG :: DESCRIPTION :: SFTP 서버 파일 삭제 수행]
        ----------------------------------------------------
        [LOG :: sftpPath :: /test]
        ----------------------------------------------------
        [LOG :: sftpFileName :: log.txt]
        D  ===================================================================


        D  ===================================================================
        [LOG :: CLASS PLACE :: com.example.javaproject.C_Module.C_SFTP_Client_Module.deleteFile(C_SFTP_Client_Module.java:731)]
        ----------------------------------------------------
        [LOG :: NOW TIME :: 2024-08-31 13:34:44 토요일]
        ----------------------------------------------------
        [LOG :: DESCRIPTION :: SFTP 서버 파일 리스트 확인]
        ----------------------------------------------------
        [LOG :: [dr-xr-xr-x   19 root     root         4096 Jul  3 15:13 .., -rw-r--r--    1 root     root            2 Aug 31 12:24 log.txt, drwxr-xr-x    2 root     root         4096 Aug 31 12:24 .]]
        D  ===================================================================


        D  ===================================================================
        [LOG :: CLASS PLACE :: com.example.javaproject.C_Module.C_SFTP_Client_Module.deleteFile(C_SFTP_Client_Module.java:749)]
        ----------------------------------------------------
        [LOG :: NOW TIME :: 2024-08-31 13:34:44 토요일]
        ----------------------------------------------------
        [LOG :: DESCRIPTION :: SFTP 서버 파일 삭제 수행 성공]
        ----------------------------------------------------
        [LOG :: SFTP Path :: /test/log.txt]
        D  ===================================================================
        // */


        // [리턴 변수 선언]
        boolean result = false;


        // [로직 처리 수행]
        try {

            if (mMainCtx != null && isConnection == true){

                if (channelSftp.isConnected() == true == true){

                    if (C_Util.stringNotNull(sftpPath) == true && C_Util.stringNotNull(sftpFileName) == true){

                        // [해당 원격 경로 이동 수행]
                        channelSftp.cd(sftpPath);

                        // [저장 된 파일 목록 확인]
                        Vector<ChannelSftp.LsEntry> fileAndFolderList = channelSftp.ls(sftpPath);

                        S_Log._W_("SFTP 서버 파일 리스트 확인", new String[]{String.valueOf(fileAndFolderList)});

                        if (String.valueOf(fileAndFolderList).contains(sftpFileName) == true){

                            // [원격 파일 경로 확인]
                            String sftpPathFile = sftpPath;
                            if (sftpPath.endsWith("/") == true){
                                sftpPathFile += sftpFileName;
                            }
                            else {
                                sftpPathFile += "/" + sftpFileName;
                            }

                            // [SFTP 서버 파일 삭제 수행]
                            channelSftp.rm(sftpPathFile);

                            result = true; // [리턴 변수 삽입]

                            S_Log._W_("SFTP 서버 파일 삭제 수행 성공", new String[]{ "SFTP Path :: " + String.valueOf(sftpPathFile) });

                        }
                        else {
                            S_Log._E_("SFTP 서버 파일 삭제 에러 발생", new String[]{ "Error :: Sftp File List Not Found" });
                        }

                    }
                    else {
                        S_Log._E_("SFTP 서버 파일 삭제 에러 발생", new String[]{ "Error :: Input Data Is Null" });
                    }

                }
                else {
                    S_Log._E_("SFTP 서버 파일 삭제 에러 발생", new String[]{ "Error :: channelSftp.isConnected() == false" });
                }

            }
            else {
                S_Log._E_("SFTP 서버 파일 삭제 에러 발생", new String[]{ "Error :: mMainCtx Is Null or channelSftp Not Null or isConnection false" });
            }

        }
        catch (Exception e){
            e.printStackTrace();
        }

        // [리턴 결과 반환]
        return result;
    }

 

반응형
Comments