Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用android列出ftp目录?_Android_Ftp - Fatal编程技术网

如何使用android列出ftp目录?

如何使用android列出ftp目录?,android,ftp,Android,Ftp,[已解决]如何获取ftp服务器上的文件和文件夹列表 我知道如何连接和上载文件,但不知道如何获取目录列表: try { FTPClient ftpClient = new FTPClient(); ftpClient.connect(InetAddress.getByName("176.28.25.46")); ftpClient.login("******", "******"

[已解决]如何获取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());
                }

            }
试试看{
FTPClient FTPClient=新的FTPClient();
ftpClient.connect(InetAddress.getByName(“176.28.25.46”);
ftpClient.login(“*******”,“*******”);
System.out.println(“状态::”+ftpClient.getStatus());
String-toppath=新字符串();
FTPFile[]ftpDirs=ftpClient.listDirectories();
对于(int i=0;i
对于每个有同样问题的人。它现在可以使用该代码:(感谢user1106888)

试试看{
FTPClient FTPClient=新的FTPClient();
ftpClient.connect(InetAddress.getByName(“176.28.25.46”);
ftpClient.login(“*******”,“*******”);
System.out.println(“状态::”+ftpClient.getStatus());
ftpClient.setFileType(FTP.BINARY文件类型);
ftpClient.enterLocalPassiveMode();
试一试{
String-toppath=新字符串();
FTPFile[]ftpDirs=ftpClient.listDirectories();
对于(int i=0;i:”+ftpDirs[i].getName());
}
FTPFile[]ftpdirs2=ftpClient.listFiles(toppath);
对于(int i=0;i:”+ftpdirs2[i].getName());
}
}捕获(例外e){
e、 printStackTrace();
} 
}捕获(例外e){
e、 printStackTrace();
} 
您可以使用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";
        }

    }
ckftp2ftp=新的CkFtp2();
int n=ftp.get_NumFilesAndDirs();
if(n<0){
outStr+=ftp.lastErrorText()+“\n”;
tv.setText(outter);
设置内容视图(电视);
返回;
}
如果(n>0){

对于(inti=0;i使用此代码,它应该会有所帮助

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());
                    }
FTPFile[]ftpDirs=mFTPClient.listDirectories();
对于(int i=0;i
我找不到带有声明的工作说明…我明天会搜索…您好。它给了我以下错误:
org.apache.commons.net.ftp.FTPConnectionClosedException:Connection closed而没有指示。
好的,我找到了原因。我需要将filetype设置为ftp.BINARY\u FILE\u TYPE并输入localpassivemode。
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());
                    }