FTP文件下载问题。获取只读文件异常

时间:2010-10-21 12:53:15

标签: android ftp download

public class FtpDownloadDemo {
public static void Connection(String filename) {
    FTPClient client = new FTPClient();
    FileOutputStream fos = null;

    try {
        client.connect("ftp.domain.com");
        client.login("admin", "secret");

        //
        // The remote filename to be downloaded.
        //
       ftpClient.setFileType(FTP.IMAGE_FILE_TYPE);

        fos = new FileOutputStream(filename);

        //
        // Download file from FTP server
        //
        client.retrieveFile("/" + filename, fos);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (fos != null) {
                fos.close();
            }
            client.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

}

我正在使用此代码下载一些图像文件。但是在 fos = new FileOutputStream(filename); 获取file.jpeg是readonly文件异常。我正在使用commons.net jar文件进行ftp连接。请帮我,我错了。

1 个答案:

答案 0 :(得分:1)

我在创建类时提供了主机,用户名和密码,然后调用它来下载文件。那些家伙是对的,它可能是想写根或什么的。我一直在为这个客户使用commons-net-2.2.jar。

public void GetFileFTP(String srcFileSpec, String destpath, String destname) {
    File pathSpec = new File(destpath);
    FTPClient client = new FTPClient();
    BufferedOutputStream fos = null;
    try {
        client.connect(mhost);
        client.login(muser, mpass);

        client.enterLocalPassiveMode(); // important!
        client.setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE);
        fos = new BufferedOutputStream(
                              new FileOutputStream(pathSpec.toString()+"/"+destname));
        client.retrieveFile(srcFileSpec, fos);
        }//try 
        catch (IOException e) {
            Log.e("FTP", "Error Getting File");
            e.printStackTrace();
            }//catch
        finally {
            try {
                if (fos != null) fos.close();
                client.disconnect();
                }//try
                catch (IOException e) {
                    Log.e("FTP", "Disconnect Error");
                    e.printStackTrace();
                    }//catch
                }//finally
    Log.v("FTP", "Done");    
    }//getfileFTP

希望这有帮助。

phavens