2014-02-18 4 views
0

나는 apache.commons.netftpClient을 사용하고 있지만 어떻게 수정해야할지 모르겠습니다.FTP 목록 파일은 항상 루트 파일을 반환합니다.

그래서 기본적으로 내가 서버에 로그인, 수동 모드를 설정 한 다음 내가 실행

fileFTPFiles = this.ftpClient.listFiles(strPath); 

오늘까지에 연결된 모든 서버에서이 마법처럼 일하지만 오늘은 연결 대신주고 경로에 파일이나 파일을 반환하는 항상 착륙 디렉토리 파일을 반환하는 서버 ... 내가

fileFTPFiles = this.ftpClient.mlistDir(strPath); 

을 실행하면

그것이 WH 반환 있지만 나는 기대한다.

왜 이런 일이 발생하는지 그리고 listFile 또는 mlistFiles 중 어떤 것을 사용할지를 쉽게 감지 할 수 있는지 설명 할 수 있습니까?

답변

0

로컬 수동 모드 또는 원격을 설정 했습니까? 나는 같은 문제가있어서 FileZilla 문서에 대한 설명을 발견했다 : https://wiki.filezilla-project.org/Network_Configuration.

내 ftp 클라이언트가 PORT ftp 명령에 의해 반환 된 서버의 포트를 바인딩 할 수 없기 때문에 (모든 요청 전에 전송 됨) 이는 나에게 발생했습니다. 그런데 FTPCLient.setActivePortRange(min, max); 메서드가 전혀 적용되지 않습니다.

이 문제를 방지하는 가장 쉬운 방법은 원시 소켓을 만들어 주소에서 네트워크 바인딩을 확인하는 것입니다.

관련 문제