org net listfiles ftpclient example ejemplo commons java apache-commons ftp-client

java - example - Apache Commons Net FTPClient y listFiles()



ftpclient listfiles (3)

¡Lo encontré!

Lo que desea es ingresar al modo pasivo después de conectarse, pero antes de iniciar sesión . Tu código no devuelve nada para mí, pero esto funciona para mí:

import org.apache.commons.net.ftp.FTPClient; import java.io.IOException; import org.apache.commons.net.ftp.FTPFile; public class BasicFTP { public static void main(String[] args) throws IOException { FTPClient client = new FTPClient(); client.connect("c64.rulez.org"); client.enterLocalPassiveMode(); client.login("anonymous", ""); FTPFile[] files = client.listFiles("/pub"); for (FTPFile file : files) { System.out.println(file.getName()); } } }

Me da esta salida:

c128 c64 c64.hu incoming plus4

¿Alguien puede explicarme qué pasa con el siguiente código? Probé con diferentes hosts, FTPClientConfigs, es accesible desde Firefox / FileZilla ... El problema es que siempre obtengo una lista de archivos vacía sin excepciones (files.length == 0). Yo uso commons-net-2.1.jar instalado con Maven.

FTPClientConfig config = new FTPClientConfig(FTPClientConfig.SYST_L8); FTPClient client = new FTPClient(); client.configure(config); client.connect("c64.rulez.org"); client.login("anonymous", "anonymous"); client.enterRemotePassiveMode(); FTPFile[] files = client.listFiles(); Assert.assertTrue(files.length > 0);


Solo el uso de enterLocalPassiveMode() no funcionó para mí.

Usé el siguiente código, que funcionó.

ftpsClient.execPBSZ(0); ftpsClient.execPROT("P"); ftpsClient.type(FTP.BINARY_FILE_TYPE);

El ejemplo completo es el siguiente,

FTPSClient ftpsClient = new FTPSClient(); ftpsClient.connect("Host", 21); ftpsClient.login("user", "pass"); ftpsClient.enterLocalPassiveMode(); ftpsClient.execPBSZ(0); ftpsClient.execPROT("P"); ftpsClient.type(FTP.BINARY_FILE_TYPE); FTPFile[] files = ftpsClient.listFiles(); for (FTPFile file : files) { System.out.println(file.getName()); }


generalmente el usuario anónimo no necesita una contraseña, prueba

client.login("anonymous", "");