FtpClient 在jdk1.7,变成了private的,所以没办法通过new去实例化,为此百度了一些,总结一下1.6到1.7的变化
//ftpClient = new FtpClient(); 原有的new 方法
ftpClient = FtpClient.create(); //1.7的替换方式
SocketAddress addr=new InetSocketAddress(ftpCfg.getFtpHost(), Integer.parseInt(ftpCfg.getFtpPort()));
//ftpClient.openServer(ftpCfg.getFtpHost(), Integer.parseInt(ftpCfg.getFtpPort()));//原先的方法
ftpClient.connect(addr);
//ftpClient.login(ftpCfg.getFtpUser(), ftpCfg.getFtpPwd());
ftpClient.login(ftpCfg.getFtpUser(), ftpCfg.getFtpPwd().toCharArray());
// 用2进制上传、下载
//ftpClient.binary();
ftpClient.setBinaryType();
//在catch中,新增了一个异常的捕捉,很多地方都要捕捉这个异常,不然会提示报错
catch (FtpProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//ftpClient.closeServer();
ftpClient.close();
//TelnetInputStream is = null;
InputStream is = null;//由于getFileStream方法返回的是InputStream,所以不使用TelnetInputStream
//is = ftpClient.get(filename);
is = ftpClient.getFileStream(filename);
//ftpClient.cd(path);
ftpClient.changeDirectory(path);
//pwd = ftpClient.pwd();
pwd = ftpClient.getWorkingDirectory();
//ftpClient.sendServer("dele " + fileName + "\r\n");
ftpClient.deleteFile(fileName);//删除文件
ftpClient.removeDirectory(path);//删除文件夹