VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java String

Giao Thức TCP

Giao thức TCP/IP là gì? TCP/IP transfer file example

Giáo Thức UDP

Giao thức UDP là gì? UDP transfer file example

Giao Thức FTP

FTP là gì? Cài đặt FTP Server trên Window Connect FTP Server trong java Get list file from FTP Server Download file from FTP Server
Các Lớp Lồng Nhau Đa Luồng (Multithreading) Java AWT Java Swing Java I/O Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Get list file from FTP Server


Java là gì? Học java core
Lập trình hướng đối tượng(OOPs) trong java

Lớp FTPClient (org.apache.commons.net.ftp.FTPClient) của thư viện commons-net-3.3.jar cung cấp các API cần thiết để làm việc với một máy chủ thông qua giao thức FTP.

Phương thức FTPClient.listFiles() được sử dụng để get list file from FTP Server.

Có 3 cách sử dụng phương thức listFiles() như sau:

  • public FTPFile[] listFiles()
  • public FTPFile[] listFiles(String pathname)
  • public FTPFile[] listFiles(String pathname, FTPFileFilter filter) throws IOException

Nội dung chính

  • Ví dụ về get list file from FTP Server
  • Ví dụ về get list file from FTP Server theo phần mở rộng của file

Ví dụ về get list file from FTP Server

Giả sử ta có list file và folder trong path="/demo" trên FTP Server như sau:

get list file from ftp server

Chương trình sau sẽ đọc tất cả các file có trong path="/demo" trên FTP Server:

File: FTPSample.java

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class FTPSample {
    private static final String FTP_SERVER_ADDRESS = "127.0.0.1";
    private static final int FTP_SERVER_PORT_NUMBER = 21;
    private static final int FTP_TIMEOUT = 60000;
    private static final int BUFFER_SIZE = 1024 * 1024 * 1;
    private static final String FTP_USERNAME = "haophong";
    private static final String FTP_PASSWORD = "1234567890";
    private FTPClient ftpClient;

    /**
     * main
     * 
     * @param args
     */
    public static void main(String[] args) {
        String ftpFolder = "/demo";
        FTPSample ftpSample = new FTPSample();
        List<FTPFile> listFtpFiles = ftpSample.getListFileFromFTPServer(ftpFolder);
        // show list file
        for (FTPFile ftpFile : listFtpFiles) {
            System.out.println(ftpFile.getName());
        }
    }

    /**
     * get list from ftp server
     * 
     * @author viettuts.vn
     * @param path
     * @return List<FTPFile>
     */
    private List<FTPFile> getListFileFromFTPServer(String path) {
        List<FTPFile> listFiles = new ArrayList<FTPFile>();
        // connect ftp server
        connectFTPServer();
        try {
            FTPFile[] ftpFiles = ftpClient.listFiles(path);
            System.out.println(path + " has " + ftpFiles.length + "file(s)");
            if (ftpFiles.length > 0) {
                for (FTPFile ftpFile : ftpFiles) {
                    // add file to listFiles
                    if (ftpFile.isFile()) {
                        listFiles.add(ftpFile);
                    }
                }
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            // disconnect ftp server
            disconnectFTPServer();
        }
        return listFiles;
    }

    /**
     * connect ftp server
     * 
     * @author viettuts.vn
     */
    private void connectFTPServer() {
        ftpClient = new FTPClient();
        try {
            System.out.println("connecting ftp server...");
            // connect to ftp server
            ftpClient.setDefaultTimeout(FTP_TIMEOUT);
            ftpClient.connect(FTP_SERVER_ADDRESS, FTP_SERVER_PORT_NUMBER);
            // run the passive mode command
            ftpClient.enterLocalPassiveMode();
            // check reply code
            if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
                disconnectFTPServer();
                throw new IOException("FTP server not respond!");
            } else {
                ftpClient.setSoTimeout(FTP_TIMEOUT);
                // login ftp server
                if (!ftpClient.login(FTP_USERNAME, FTP_PASSWORD)) {
                    throw new IOException("Username or password is incorrect!");
                }
                ftpClient.setDataTimeout(FTP_TIMEOUT);
                System.out.println("connected");
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    /**
     * disconnect ftp server
     * 
     * @author viettuts.vn
     */
    private void disconnectFTPServer() {
        if (ftpClient != null && ftpClient.isConnected()) {
            try {
                ftpClient.logout();
                ftpClient.disconnect();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
}

Kết quả:

connecting ftp server...
connected
/demo has 7file(s)
autologin_v1.jar
autologin_v2.jar
autologin_v3.jar
index.html
listfiles.xlsx

Ví dụ về get list file from FTP Server theo phần mở rộng của file

Sửa phương thức getListFileFromFTPServer() của chương trình trên như dưới đây sẽ đọc tất cả các file có phần mở rộng là ",jar" của path="\demo" trên FTP Server:

    /**
     * get list from ftp server
     * 
     * @author viettuts.vn
     * @param path
     * @return List<FTPFile>
     */
    private List<FTPFile> getListFileFromFTPServer(String path) {
        List<FTPFile> listFiles = new ArrayList<FTPFile>();
        // connect ftp server
        connectFTPServer();
        try {
            FTPFile[] ftpFiles = ftpClient.listFiles(path, new FTPFileFilter() {
                
                public boolean accept(FTPFile file) {
                    return file.getName().endsWith("jar");
                }
            });
            System.out.println(path + " has " + ftpFiles.length + "file(s)");
            if (ftpFiles.length > 0) {
                for (FTPFile ftpFile : ftpFiles) {
                    // add file to listFiles
                    if (ftpFile.isFile()) {
                        listFiles.add(ftpFile);
                    }
                }
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            // disconnect ftp server
            disconnectFTPServer();
        }
        return listFiles;
    }

Kết quả:

connecting ftp server...
connected
/demo has 3file(s)
autologin_v1.jar
autologin_v2.jar
autologin_v3.jar

Java là gì? Học java core
Lập trình hướng đối tượng(OOPs) trong java

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiBắt đầu với excelHướng dẫn lập trình Python với EclipseHướng dẫn lập trình Python với PyCharm Community EditionHướng dẫn lập trình Python với Visual Studio CodeLiên kết css với htmlSử dụng Javascript trong HTMLSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml