Android Ftp下载文件问题

时间:2014-05-19 22:18:31

标签: android file ftp download

我是Android编程的新手,从ftp服务器下载文件到模拟器的SD卡时出现问题。我搜索过类似的主题,并试图做每一个推荐,但没有得到解决方案。我可以毫无问题地下载文件。它们是在我的SD卡中创建的,具有我想要的确切名称,它们似乎是0字节。我有必要在我的清单文件中写外部存储,我使用apache ftp commons utilities。

这是我的连接代码

public void ConnectFTP() {
    boolean status = false;
    try {
        mFtpClient = new FTPClient();
        mFtpClient.setConnectTimeout(10 * 1000);
        mFtpClient.connect(InetAddress.getByName(ip),21);
        status = mFtpClient.login(userName, pass);
        mFtpClient.enterLocalPassiveMode();
        Log.e("isFTPConnected", String.valueOf(status));
    } catch (SocketException e) {
        e.printStackTrace();
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

这是从FTP下载文件的代码

public void downloadFTP(String FTP_file, String SD_file,String folder) {
    ConnectFTP();
    File dir=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/qaqc/" + folder);
    dir.mkdirs();
    try {
        mFtpClient.changeWorkingDirectory(folder);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    BufferedOutputStream desFileStream = null;
    try {
        mFtpClient.enterLocalPassiveMode();
        if (!mFtpClient.setFileType(FTP.BINARY_FILE_TYPE)) {
            Log.e("binary", "Setting binary file type failed.");
        }
        desFileStream = new BufferedOutputStream(new FileOutputStream(
                Environment.getExternalStorageDirectory().getAbsolutePath()+"/qaqc/"+folder+"/"+SD_file),
                8 * 1024);

        mFtpClient.retrieveFile("/"+FTP_file, desFileStream);
        desFileStream.flush();
        desFileStream.close();
        mFtpClient.logout();
        mFtpClient.disconnect();     
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

有没有任何解决方案或想法指出我正确的方向?我在这做错了什么? 谢谢。

0 个答案:

没有答案