文件未从ftp服务器下载(android)

文件未从ftp服务器下载(android),android,ftp,download,Android,Ftp,Download,我无法将文件从ftp服务器下载到我的android设备。下面是我的代码。我正在使用common net 3.3参考库访问ftp服务器。应用程序运行时没有任何错误,但不会下载文件 package com.anis.ftpdownload; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java

我无法将文件从ftp服务器下载到我的android设备。下面是我的代码。我正在使用common net 3.3参考库访问ftp服务器。应用程序运行时没有任何错误,但不会下载文件

package com.anis.ftpdownload;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

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

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    System.out.println("main");
    downloadFile();

}

private void downloadFile() {

    System.out.println("download file reached");

    FTPClient ftpClient = new FTPClient();
    try {
        ftpClient.connect("islingtonproject.comxa.com", 21);
        ftpClient.login("usr","pass");
        ftpClient.enterLocalPassiveMode();
        System.out.println("ftpclient connected");


        String remoteFile1 = "/csv/s.csv";
        File downloadFile1 = new File("/sdcard/s.csv");
        OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
        boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
        outputStream1.close();

        System.out.println("downloading");

        if (!success) {
            System.out.println("File #1 download failed.");
        }

        ftpClient.logout();
        ftpClient.disconnect();


    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e){
        e.printStackTrace();
    }

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

您当然会有错误。首先,您将有一个NetworkOnMainThreadException。网络代码应该放在线程或异步任务中。进一步的remoteFile1应仅为文件名。不是子目录和文件名。请先将当前工作目录更改为csv。您能帮我修改代码吗。我是初学者。所以我不明白你只需点击ftp按钮就可以看到有关ftp的问题。读了很多,很快你就会发现如何编写我的建议。在发布这个问题之前,我对android上的ftp客户端进行了大量研究,但没有一个使用了asynctask类。或者用一根线。但他们并没有为此发布代码,因为这与他们的问题无关。您有NetworkOnMainThread异常。看看航海日志。