powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Список файлов и каталогов на ftp
3 сообщений из 3, страница 1 из 1
Список файлов и каталогов на ftp
    #39468097
LittleLoya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток. Пытаюсь получить список файлов и каталогов на ftp, но почему-то ничего не выводит, хотя на ftp этот каталог есть и он не пустой. Адрес, логин и пароль правильные, подключение происходит, никаких ошибок не выдаёт, но массив в итоге почему-то пустой. Подскажите, пожалуйста, где может быть ошибка? Как ещё можно попробовать получить список файлов? Вот код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
 
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
 
public class FTPDirDemo {
 
    public static void main(String[] args) {
        String server = args[0];
        int port = 21;
        String user = args[1];
        String pass = args[2];
 
        FTPClient ftpClient = new FTPClient();
 
        try {
 
            ftpClient.connect(server, port);
            showServerReply(ftpClient);
 
            int replyCode = ftpClient.getReplyCode();
            if (!FTPReply.isPositiveCompletion(replyCode)) {
                System.out.println("Connect failed");
                return;
            }
 
            boolean success = ftpClient.login(user, pass);
            showServerReply(ftpClient);
 
            if (!success) {
                System.out.println("Could not login to the server");
                return;
            }
 
            // Lists files and directories
            FTPFile[] files1 = ftpClient.listFiles("/catalog");
            printFileDetails(files1);
 
            // uses simpler methods
            String[] files2 = ftpClient.listNames();
            printNames(files2);
 
 
        } catch (IOException ex) {
            System.out.println("Oops! Something wrong happened");
        } finally {
            // logs out and disconnects from server
            try {
                if (ftpClient.isConnected()) {
                    ftpClient.logout();
                    ftpClient.disconnect();
                }
            } catch (IOException ex) {
            }
        }
    }
 
    private static void printFileDetails(FTPFile[] files) {
        DateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (FTPFile file : files) {
            String details = file.getName();
            if (file.isDirectory()) {
                details = "[" + details + "]";
            }
            details += "\t\t" + file.getSize();
            details += "\t\t" + dateFormater.format(file.getTimestamp().getTime());
 
            System.out.println(details);
        }
    }
 
    private static void printNames(String files[]) {
        if (files != null && files.length > 0) {
            for (String aFile: files) {
                System.out.println(aFile);
            }
        }
    }
 
    private static void showServerReply(FTPClient ftpClient) {
        String[] replies = ftpClient.getReplyStrings();
        if (replies != null && replies.length > 0) {
            for (String aReply : replies) {
                System.out.println("SERVER: " + aReply);
            }
        }
    }

}
...
Рейтинг: 0 / 0
Список файлов и каталогов на ftp
    #39468105
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых
Код: java
1.
System.out.println("Oops! Something wrong happened");

таки стоит заменить на
Код: java
1.
e.printStackTrace();



Во-вторых, добавьте логирование FTP комманд:
https://wiki.apache.org/commons/Net/FrequentlyAskedQuestions
...
Рейтинг: 0 / 0
Список файлов и каталогов на ftp
    #39468421
LittleLoya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

огромнейшее спасибище!!! Всё получилось.

Может кому пригодится, добавила:
Код: java
1.
ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));


получила
500 Illegal PORT command
узнала про существование Active and Passive Modes in FTP =)
добавила:
Код: java
1.
ftpClient.enterLocalPassiveMode();


И всё заработало!!!

Спасибо большое ещё раз!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Список файлов и каталогов на ftp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]