Java Android Eclipse中的FTP客户端

时间:2012-08-23 13:01:27

标签: android ftp-client

首先 - 这是我在StackOverflow上提出的第一个问题。我来自德国,我的英语不太好:)。

我尝试将FTP客户端创建为Android应用程序。我正在使用Eclipse和Android SDK进行编码。

这是我的代码,但它不起作用。 我使用Apache Commons FTP库。 你能帮助我吗?我不想要一个功能代码,但我喜欢得到建议让代码工作。 谢谢!

所以这是我的代码:


    import org.apache.commons.net.ftp.FTPClient;

    public class speechatStart extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.main);


    Button b1 = (Button) findViewById(R.id.bt_load);
    b1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {


            FTPClient client = new FTPClient(); 

            TextView ausgabe = (TextView) findViewById(R.id.ausgabe);


            try {
            client.connect("ftp-web.ohost.de");
            client.login("ftp1857836", "123456789"); 
                String filename = "file1.txt"; 
                FileInputStream fis = null; 
                    fis = new FileInputStream(filename); 
                    client.storeFile(filename, fis); 
                    client.logout(); 
                    fis.close();

                    ausgabe.setText(fis);

        } catch (SocketException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            ausgabe.setText("SocketException");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            ausgabe.setText("IOException");
        } 

        }
    });

2 个答案:

答案 0 :(得分:1)

Apache-Commons FTp库没有为我提供可靠的解决方案。所以我使用ftp4j给了我更好的解决方案和API也很简单。

 Example:

    FTPClient client = new FTPClient();
    client.connect("ftp.host.com");
    if(client.isConnected())
    {
        client.login("username","password");
        if(client.isAuthenticated())
         {
              client.upload(new java.io.File("localFile.txt"));
          }
    }

希望这有帮助

答案 1 :(得分:0)

如果您想下载文件,请尝试下一个代码:

ftpClient.retrieveFile(filename, outputStream);
outputStream.flush();
outputStream.close();
ftpClient.logout();
ftpClient.disconnect();

将更改上传到

ftpClient.storeFile(filename, inputStream);

您似乎在关闭流之前正在注销。