如何列出FTP的目录与Android?(How to list ftp directories wi

2019-07-03 12:30发布

[解决]我怎样才能让我的文件和文件夹的我的FTP服务器上的目录?

我知道如何连接和上传文件,但不知道如何获得目录列表:

            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();
            } 

但是,每一个代码剪断,我在谷歌找到了我没有工作: - /

            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());
                }

            }

对于大家谁都有同样的问题。 现在它与代码:(感谢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();
            } 

Answer 1:

使用此代码,它应该帮助

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());
                    }


Answer 2:

您可以使用CkFtp2 API轻松地获得FTP目录列表信息。 像下面这样:

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";
        }

    }


文章来源: How to list ftp directories with android?
标签: android ftp