无法使用apache commons库在android ftp客户端中获取Internet ftp服务器目录列表

时间:2013-04-03 02:40:46

标签: android ftp-client

当我尝试使用Android的ftp客户端从drivehq ftp服务器获取目录列表时,我收到连接拒绝异常。请帮助我解决我的问题。为此我的代码在下面给出我也在真实设备samsang galaxy mobile上测试。是的我添加了这些权限

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
    public void login(String host,String username,String password,int port)
        {
            try 
            {
                ftpClient.connect(host);
                ftpClient.login(username, password);
                ftpClient.changeWorkingDirectory("/MyData");
                ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                ftpClient.enterLocalPassiveMode();
            } catch (SocketException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    public ArrayList<File> getDirectoryListing()
    {       
            ArrayList<File> list=new ArrayList<File>();
            FTPFile[] files = null;

            try
            {
                Log.d(ftpClient.printWorkingDirectory(), "is working directory");
                files=ftpClient.listFiles();
                for(FTPFile f:files)
                {
                    String s=f.getName();
                    Log.d(s, "is file");
                    File fs=new File(s);
                    list.add(fs);
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return list;
        }

1 个答案:

答案 0 :(得分:1)

我使用ftp-4j库将我的文件上传到服务器。您可以为项目使用类似的概念。这是链接:SampleDemo

感谢。