¿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:
- ¿Cómo descargar un archivo desde FTP y almacenarlo localmente con Cordova?
- Biblioteca FTP de Android
- URL del navegador de Android URL
- La carga de archivos zip por FTP está dañada a veces
- FTP y SFTP en Android
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(); }
- ¿Subir un archivo a un servidor FTP desde un teléfono Android?
- Seguimiento de FTP subir datos en android?
- FTPClient corrompe las imágenes mientras se sube al servidor ftp en android?
- FTPClient Subiendo archivo = SocketException: Conexión restablecida
- No se puede conectar a FTP en Gingerbread
- FTP Subir y descargar en Android
- ¿Cómo subes imágenes a un servidor FTP dentro de una aplicación para Android?
- Servidor FTP de Android
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"; } }
- Androide enfrente de bringChildToFront
- El teclado virtual no funciona cuando el escáner de código de barras está conectado a la tableta