public class FtpClientUtil {
FtpClient ftpClient;
private String server;
private int port;
private String userName;
private String userPassword;
public FtpClientUtil(String server,int port,String userName,String userPassword)
{
this.server=Constants.FTP_IP;
this.port=Constants.FTP_PORT;
this.userName=Constants.USER_NAME;
this.userPassword=Constants.USER_PASSWORD;
}
public boolean open()
{
if(ftpClient!=null&&ftpClient.serverIsOpen())
return true;
try
{
ftpClient= new FtpClient();
ftpClient.openServer(server,port);
ftpClient.login(userName, userPassword);
ftpClient.binary();
return true;
}
catch(Exception e)
{
e.printStackTrace();
ftpClient=null;
return false;
}
}
public boolean cd(String dir){
boolean f = false;
try {
ftpClient.cd(dir);
} catch (IOException e) {
e.printStackTrace();
return f;
}
return true;
}
public long download(String ftpDirectoryAndFileName,String localDirectoryAndFileName)throws Exception
{
long result = 0;
if(!open())
return result;
TelnetInputStream is = null;
FileOutputStream os = null;
try
{
is = ftpClient.get(ftpDirectoryAndFileName);
java.io.File outfile = new java.io.File(localDirectoryAndFileName);
os = new FileOutputStream(outfile);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1)
{
os.write(bytes, 0, c);
result = result + c;
}
}
catch (Exception e)
{
throw e;
}
finally
{
if (is != null)
is.close();
if (os != null)
os.close();
}
return result;
}
这里的 ftpDirectoryAndFileName和localDirectoryAndFileName按照字面意思第一个是ftp的目录地址,后面的是本地的目录地址。
但是ftpDirectoryAndFileName和localDirectoryAndFileName应该怎么写呢?
我ftpDirectoryAndFileName为:"",localDirectoryAndFileName为:"E:\\temp_workspace\\tmp\\"
提示sun.net.ftp.FtpProtocolException: 501 Syntax error: Invalid number of parameters.的错误。
我只要下载这部分的,代码测试好了的再贴,我会再加50分的
这部分已经搞定了,是少了一个获取FTP服务器上的数据命名规则,或者载入sun下的ftpClient的一个包就搞定了,谢谢你们,只能给一个人分,那就给第一个回答问题的人吧!:)
java 下载异地FTP中的zip文件
答案:2 悬赏:0 手机版
解决时间 2021-01-29 14:59
- 提问者网友:爱唱彩虹
- 2021-01-28 20:13
最佳答案
- 五星知识达人网友:西岸风
- 2021-01-28 20:50
好像需要一个支持jar包把,把ftp4j的下载地址贴出来
全部回答
- 1楼网友:想偏头吻你
- 2021-01-28 21:14
没关注过下载的问题。
is = ftpClient.get(ftpDirectoryAndFileName);
这里,你将ftpDirectoryAndFileName设置为"",那么将会从哪下载什么文件呢?
从一个空的地方得到FTP的输入流?
感觉应该指定某个FTP地址上的某个文件吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯