[java] Apache Commons Net과의 디렉토리 다운로드

이번 포스트에서는 Apache Commons Net 라이브러리를 사용하여 Java 프로그램에서 FTP 서버로부터 디렉토리를 다운로드하는 방법에 대해 알아보겠습니다.

Apache Commons Net 라이브러리란?

Apache Commons Net은 다양한 네트워크 프로토콜을 구현하는데 사용할 수 있는 라이브러리입니다. 이를 사용하여 FTP, FTPS, SMTP, POP3 등의 프로토콜을 구현할 수 있습니다.

디렉토리 다운로드 예제

아래는 Apache Commons Net을 사용하여 FTP 서버로부터 디렉토리를 다운로드하는 간단한 Java 예제 코드입니다.

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import java.io.*;

public class FTPDirectoryDownloadExample {
    public static void main(String[] args) {
        String server = "ftp.example.com";
        int port = 21;
        String user = "username";
        String pass = "password";
        String remoteDirPath = "/remote/directory/path";
        String localDirPath = "/local/directory/path";

        FTPClient ftpClient = new FTPClient();
        try {
            ftpClient.connect(server, port);
            ftpClient.login(user, pass);
            ftpClient.enterLocalPassiveMode();
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

            File localDir = new File(localDirPath);
            if (!localDir.exists()) {
                localDir.mkdirs();
            }

            FTPFile[] remoteFiles = ftpClient.listFiles(remoteDirPath);
            for (FTPFile remoteFile : remoteFiles) {
                String remoteFilePath = remoteDirPath + "/" + remoteFile.getName();
                File localFile = new File(localDir, remoteFile.getName());
                OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(localFile));
                ftpClient.retrieveFile(remoteFilePath, outputStream);
                outputStream.close();
            }

            ftpClient.logout();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ftpClient.isConnected()) {
                try {
                    ftpClient.disconnect();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

위 예제는 FTP 서버로부터 지정된 디렉토리의 파일을 다운로드하는 Java 프로그램입니다. 프로그램이 실행되면 FTP 서버에 연결하고, 지정된 디렉토리의 파일을 지정된 로컬 디렉토리로 다운로드합니다.

결론

Apache Commons Net 라이브러리를 사용하여 FTP 서버로부터 디렉토리를 다운로드하는 방법에 대해 알아보았습니다. 이를 사용하면 Java 프로그램에서 간단히 FTP 서버와의 통신을 구현할 수 있습니다.

더 많은 정보는 Apache Commons Net 공식 웹사이트에서 확인할 수 있습니다.