2014-02-18 5 views
0

Я использую apache.commons.netftpClient, но у меня возникла проблема, что я не уверен, как исправить.Файлы FTP-файлов возвращают всегда корневые файлы

Поэтому в основном я войти на сервер, установить пассивный режим, а затем я бегу:

fileFTPFiles = this.ftpClient.listFiles(strPath); 

Во всех серверах я не связанных с до сегодняшнего дня, это работает как шарм, но сегодня я подключен к сервер, который вместо того, чтобы вернуться файл или файлы в пути поддавки всегда возвращает файлы каталога посадки ...

Хотя если я бегу

fileFTPFiles = this.ftpClient.mlistDir(strPath); 

возвращает белый я ожидаю.

Может ли кто-нибудь объяснить мне, почему это происходит, и если есть простой способ определить, следует ли использовать listFile или mlistFiles?

ответ

0

Вы установили локальный пассивный режим или пульт? У меня была та же проблема, и я нашел некоторые объяснения в документации FileZilla: https://wiki.filezilla-project.org/Network_Configuration.

Это произошло со мной, потому что мой ftp-клиент не смог связать порт сервера, возвращенный командой PORT ftp (отправляется перед каждым запросом). Кстати, метод FTPCLient.setActivePortRange(min, max); вообще не вступает в силу;

Самый простой способ избежать этого, похоже, создать сырой сокет, чтобы проверить привязку сети по адресу.

Смежные вопросы