Bom Dia…
Estou tendo problema para listar os arquivos de um diretório no FTP.
Estou utilizando a API da apache commons-net.1.4.1
Parece que conecta normal, mas não retorna nenhum arquivo. O diretório existe e tem arquivos e outros diretórios dentro dele.
Se alguem puder me ajudar…
Código
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.ftp.FTPFile;
public class Conecta {
public static void main(String[] args) throws SocketException, IOException {
FTPClient ftp = new FTPClient();
ftp.connect( "ftp.aaaa.com.br" );
ftp.login( "aaa", "aaa" );
System.out.print("....: "+ftp.getReplyString());
if(FTPReply.isPositiveCompletion( ftp.getReplyCode() )){
System.out.println("....: Conectou");
}
ftp.changeWorkingDirectory ("public_html/docs");
System.out.print("....: "+ftp.getReplyString());
System.out.println("....: Porta "+ftp.getDefaultPort());
try{
FTPFile[] files = ftp.listFiles();
System.out.println("....: Testando com FTPFile");
System.out.println("....: Quantidade["+files.length+"]");
String[] arq = ftp.listNames();
System.out.println("....: Testando com ftp.listNames()");
System.out.println("....: Quantidade["+arq.length+"]");
System.out.println ("Listando arquivos: \n");
for (String f : arq){
System.out.println(f);
}
}catch (NullPointerException e) {
System.out.println(e.getMessage());
}
}
}
Retorno
....: 230-User usuario has group access to: usuario
230 OK. Current restricted directory is /
....: Conectou
....: 250 OK. Current directory is /public_html/docs
....: Porta 21
....: Testando com FTPFile
....: Quantidade[0]
....: Testando com ftp.listNames()
null
Coloquei um getReplayString depois que pede para listar o conteudo.
e me retornou.
500 I won’t open a connection to 192.168.0.3 (only to 189.58.999.99)
Pelo que entendi ta passando meu ip da rede interna, mais ele só aceita o ip do servidor.