¿Cómo listar los directorios de ftp con android?

[SOLVED] ¿Cómo puedo obtener una lista de mis archivos y carpetas en mi servidor ftp?

Sé cómo conectar y subir un archivo, pero no cómo obtener la lista de directorio:

try { FTPClient ftpClient = new FTPClient(); ftpClient.connect(InetAddress.getByName("176.28.25.46")); ftpClient.login("******", "******"); System.out.println("status :: " + ftpClient.getStatus()); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); ftpClient.enterLocalPassiveMode(); // Prepare file to be uploaded to FTP Server File file = new File("default.prop"); FileInputStream ifile = new FileInputStream(file); // Upload file to FTP Server ftpClient.storeFile("/subdomains/giveyourapps/httpdocs/apps/default.prop",ifile); ftpClient.disconnect(); } catch (Exception e) { e.printStackTrace(); } 

Pero cada código cortado que encontré en google no funcionó para mí: – /

  try { FTPClient ftpClient = new FTPClient(); ftpClient.connect(InetAddress.getByName("176.28.25.46")); ftpClient.login("******", "******"); System.out.println("status :: " + ftpClient.getStatus()); String toppath = new String(); FTPFile[] ftpDirs = ftpClient.listDirectories(); for (int i = 0; i < ftpDirs.length; i++) { toppath = ftpDirs[0].getName(); Log.d("CONNECT", "Directories in the ftp server are " + ftpDirs[i].getName()); } FTPFile[] ftpdirs2 = ftpClient.listFiles(toppath); for (int i = 0; i < ftpdirs2.length; i++) { Log.d("CONNECT", "File i need is " + ftpdirs2[i].getName()); } } 

Para todos los que tienen el mismo problema. Funciona ahora con ese código: (Gracias a user1106888)

  try { FTPClient ftpClient = new FTPClient(); ftpClient.connect(InetAddress.getByName("176.28.25.46")); ftpClient.login("******", "******"); System.out.println("status :: " + ftpClient.getStatus()); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); ftpClient.enterLocalPassiveMode(); try{ String toppath = new String(); FTPFile[] ftpDirs = ftpClient.listDirectories(); for (int i = 0; i < ftpDirs.length; i++) { toppath = ftpDirs[0].getName(); System.out.println("Directory->: " + ftpDirs[i].getName()); } FTPFile[] ftpdirs2 = ftpClient.listFiles(toppath); for (int i = 0; i < ftpdirs2.length; i++) { System.out.println("Files->: " + ftpdirs2[i].getName()); } }catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } 

Utilice este código y debería ayudarlo

 FTPFile[] ftpDirs = mFTPClient.listDirectories(); for (int i = 0; i < ftpDirs.length; i++) { toppath = ftpDirs[0].getName(); Log.d("CONNECT", "Directories in the ftp server are " + ftpDirs[i].getName()); } FTPFile[] ftpdirs2 = mFTPClient.listFiles(toppath); for (int i = 0; i < ftpdirs2.length; i++) { Log.d("CONNECT", "File i need is " + ftpdirs2[i].getName()); } 

Puede utilizar la API de CkFtp2 para obtener fácilmente la información del listado del directorio FTP. Como el siguiente:

 CkFtp2 ftp = new CkFtp2(); int n = ftp.get_NumFilesAndDirs(); if (n < 0) { outStr += ftp.lastErrorText() + "\n"; tv.setText(outStr); setContentView(tv); return; } if (n > 0) { for (int i = 0; i <= n - 1; i++) { // Display the filename outStr += ftp.getFilename(i) + "\n"; // Display the file size (in bytes) outStr += ftp.GetSize(i) + "\n"; // Is this a sub-directory? if (ftp.GetIsDirectory(i) == true) { outStr += ".. this is a sub-directory" + "\n"; } outStr += "--" + "\n"; } } 
  • Subir imágenes con FTP en Android
  • Cómo FTP un archivo de una compilación de Android Gradle?
  • Android: ¿Cómo puedo obtener el tamaño de archivo de un archivo FTP a través de FTPClient?
  • ¿Cómo descargar un archivo del servidor FTP al dispositivo Android?
  • ¿Cómo restaurar los datos de DDMS & Ftp Server?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.