투케이2K

858. (Android/Java) [jsch] SFTP 라이브러리 - 원격 서버 파일 목록 확인 수행 실시 - getSftpFileList 본문

Android

858. (Android/Java) [jsch] SFTP 라이브러리 - 원격 서버 파일 목록 확인 수행 실시 - getSftpFileList

투케이2K 2024. 9. 1. 09:47
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

 

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


        /*
        D  ===================================================================
        [LOG :: CLASS PLACE :: com.example.javaproject.C_Module.C_SFTP_Client_Module.getFtpFileList(C_SFTP_Client_Module.java:613)]
                ----------------------------------------------------
        [LOG :: NOW TIME :: 2024-08-31 13:26:28 토요일]
                ----------------------------------------------------
        [LOG :: DESCRIPTION :: SFTP 서버 파일 목록 확인 수행]
                ----------------------------------------------------
        [LOG :: sftpPath :: /test]
        D  ===================================================================


        W  ===================================================================
        [LOG :: CLASS PLACE :: com.example.javaproject.C_Module.C_SFTP_Client_Module.getFtpFileList(C_SFTP_Client_Module.java:642)]
                ----------------------------------------------------
                        LOG :: NOW TIME :: 2024-08-31 13:26:28 토요일]
                ----------------------------------------------------
        [LOG :: DESCRIPTION :: SFTP 서버 파일 리스트 확인 성공]
                ----------------------------------------------------
        [LOG :: [log.txt]]
        W  ===================================================================
        // */


        // [리턴 변수 선언]
        ArrayList result = new ArrayList();


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

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

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

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

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

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

                        if (fileAndFolderList != null && fileAndFolderList.size()>0 && fileAndFolderList.isEmpty() == false){

                            for (int i=0; i<fileAndFolderList.size(); i++){
                                if (fileAndFolderList.get(i).getFilename().trim().replaceAll("\\.", "").length() > 0){
                                    result.add(fileAndFolderList.get(i).getFilename());
                                }
                            }

                            S_Log._W_("SFTP 서버 파일 리스트 확인 성공", new String[]{String.valueOf(result)});
                        }
                        else {
                            S_Log._E_("SFTP 서버 파일 목록 확인 에러 발생", new String[]{ "Error :: channelSftp.ls Is Null" });
                        }

                    }
                    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