这里FTP上传使用的是:
commons-net:commons-net:3.6
首先登录
FTPClient client = new FTPClient(); // 连接FPT服务器,设置IP及端口 client.connect(host地址, port端口); client.login(userName用户名, passWord密码); client.changeWorkingDirectory(filePath文件夹名字); //设置上传模式 client.setFileType(FTP.BINARY_FILE_TYPE); //是否开启被动模式 client.setRemoteVerificationEnabled(false); client.enterLocalPassiveMode(); //设置utf-8编码 client.setControlEncoding("utf-8");
开始上传
File file = new File("本地文件路径"); if (file.exists()) { //是否是文件夹 if (file.isDirectory()) { //返回某个目录下所有文件和目录的绝对路径,返回类型File[] File[] children = file.listFiles(); for (final File f : children) { File uploadFile = new File("路径" + f.getName()); FileInputStream srcFileStream = null; try { srcFileStream = new FileInputStream(uploadFile); } catch (FileNotFoundException e) { e.printStackTrace(); } boolean b = false; try { client.setCopyStreamListener(new MyUploadListener()); //上传文件 b = client.storeFile(上传目标文件夹 + "/" + 文件名称, srcFileStream); if (b) { ("上传成功") srcFileStream.close(); } else { srcFileStream.close(); ("上传失败"); } } catch (IOException e) { e.printStackTrace(); } } } }
上传监听:
class MyUploadListener implements CopyStreamListener{ @Override public void bytesTransferred(CopyStreamEvent event) { } @Override public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) { ("上传中:"+totalBytesTransferred+" byte") } }
现在是FTP下载:
使用的是ftp4j-1.7.2.jar
首先登录:
FTPClient client = new FTPClient(); // 连接FPT服务器,设置IP及端口 client.connect(host路径, port端口); client.login(userName用户名, password密码); client.changeDirectory(filePath进入文件夹);
开始下载:
for (String fileName : 下载服务器文件夹) { Log.e(TAG, "进入log循环"); if (!(fileName == null || fileName.isEmpty())) { //获取文件夹里所有文件 try { loginClient.download(fileName, new File("下载文件夹地址" + fileName), new MyTest1Listener()); } catch (IOException e) { e.printStackTrace(); } catch (FTPIllegalReplyException e) { e.printStackTrace(); } catch (FTPException e) { e.printStackTrace(); } catch (FTPDataTransferException e) { e.printStackTrace(); } catch (FTPAbortedException e) { e.printStackTrace(); } } }
下载监听:
class MyTest1Listener implements FTPDataTransferListener { long downSize = 0; @Override public void aborted() { ("开始下载") } @Override public void completed() { ("下载完成") } @Override public void failed() { ("下载失败") } @Override public void started() { // TODO Auto-generated method stub ("下载开始") } @Override public void transferred(int arg0) { // TODO Auto-generated method stub downSize += arg0; ("文件下载中:" + downSize + "byte") } }