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连接。请帮我,我错了。
答案 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