遍历FTP目录及下载
操作ftp,直接在main方法中即可操作。
例1:遍历ftp目录中的文件
public static void main(String[] args) throws IOException {
FTPClient ftpClient = new FTPClient();
try {
// 连接FTP服务器
ftpClient.connect("100.100.1.100", 21);//地址,端口号
// 登录FTP服务器
ftpClient.login("admin", "admin");//用户名,密码
// 验证FTP服务器是否登录成功
ftpClient.setControlEncoding("UTF-8");
int replyCode = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(replyCode)) {
System.out.println("登录失败");
return;
}else{
System.out.println("登录成功");
}
//根目录 登录到ftp后,所在的目录即是根目录,直接即可遍历文件
FTPFile[] files = ftpClient.listFiles();
for(FTPFile file: files){
System.out.println(file.getName());
}
// 切换目录 想要遍历那个目录的文件,先要切换目录(切换目录实际就是进入目录),进到目录之后再进行遍历
if(!ftpClient.changeWorkingDirectory("/transactionDetail")){
System.out.println("切换目录失败");
return;
}else{
FTPFile[] fileDic = ftpClient.listFiles();
for(FTPFile f: fileDic){
System.out.println(f.getName());
}
}
ftpClient.logout();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.logout();
} catch (IOException e) {
}
}
}
}
例2:读取(下载)ftp中的文件
public static void main(String[] args) throws IOException {
FTPClient ftpClient = new FTPClient();
OutputStream out = null;
InputStream in = null;
try {
// 连接FTP服务器
ftpClient.connect("100.100.1.100", 21);
// 登录FTP服务器
ftpClient.login("admin", "admin");
// 验证FTP服务器是否登录成功
ftpClient.setControlEncoding("UTF-8");
int replyCode = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(replyCode)) {
System.out.println("登录失败");
}else{
System.out.println("登录成功");
}
// 切换目录
if(!ftpClient.changeWorkingDirectory("/book_detail")){
System.out.println("切换目录失败");
}else{
in = new FileInputStream("detail-2020-02-20-xls.zip");//读取目录中的文件
//创建本地文件
File tmpFile = new File("D:" + File.separator + "route" + File.separator + "detail-2020-02-20-xls.zip");
if (!tmpFile.getParentFile().exists()) {
tmpFile.getParentFile().mkdirs();//创建目录
}
if(!tmpFile.exists()) {
tmpFile.createNewFile();//创建文件
}
out = new FileOutputStream(tmpFile);
// 创建字节数组
byte[] temp = new byte[1024];
int length = 0;
// 源文件读取一部分内容
while ((length = in.read(temp)) != -1) {
// 目标文件写入一部分内容
out.write(temp, 0, length);
}
in.close();
out.close();
System.out.println("写入本地成功");
}
ftpClient.logout();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.logout();
} catch (IOException e) {
}
}
}
}
所谓的下载实质上就是输出。
遍历FTP目录及下载的更多相关文章
- C#遍历FTP文件夹/下载
原文链接:http://blog.csdn.net/ou8811/article/details/5295780 整个程序大致可以分为2个部分,第一部分是实现单个文件下载的方法 [c-sharp] v ...
- JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)
package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...
- python实现支持目录FTP上传下载文件的方法
#!/usr/bin/env python # -*- coding: utf-8 -*- import ftplib import os import sys class FTPSync(objec ...
- Linux下wget下载整个FTP目录(含子目录)--转载
wget -nH -m --ftp-user=your_username --ftp-password=your_password ftp://your_ftp_host/* 解释:-nH:不创建以主 ...
- vb.net FTP上传下载,目录操作
https://blog.csdn.net/dzweather/article/details/51429107 FtpWebRequest与FtpWebResponse类用来与特定FTP服务器进行沟 ...
- java客户端调用ftp上传下载文件
1:java客户端上传,下载文件. package com.li.utils; import java.io.File; import java.io.FileInputStream; import ...
- windows系统下ftp上传下载和一些常用命令
先假设一个ftp地址 用户名 密码 FTP Server: home4u.at.china.com User: yepanghuang Password: abc123 打开windows的开始菜单, ...
- 用DOS批处理实现FTP自动上传、下载、清理文件
用DOS批处理实现FTP自动上传.下载.清理文件 最近好像特别的忙,好久没来写点东西了,今天写了一个利用批处理程序完成FTP自动上传.下载.清理文件的程序.赶紧 记录下来,以备日后之用.功能介绍:自动 ...
- windows下ftp上传下载和一些常用命令
先假设一个ftp地址 用户名 密码 FTP Server: home4u.at.china.com User: yepanghuang Password: abc123 打开windows的开始菜单, ...
随机推荐
- Bootstrap框架(二)
day58 巨幕 这是一个轻量.灵活的组件,它能延伸至整个浏览器视口来展示网站上的关键内容. Hello, world! This is a simple hero unit, a simple ju ...
- 我与网站的日常-webshell命令执行
本文比较基础,其中有一个知识点关于php执行系统命令的函数 ,我们用最简单的webshell来说说传值问题的影响, 本文作者: i春秋签约作家——屌丝绅士 0×01前言: 小表弟又来写文章了,这 ...
- linux下各个目录里面都装了什么
文章来源:http://blog.csdn.net/sunstars2009918/article/details/7038772 搞电脑的人总想知道自己的系统里到底有些什么东西,于是我就在Linux ...
- Centos7安装Chacha20加密算法 (验证成功)
Centos7安装Chacha20加密算法 (验证成功) 有些程序会使用Chacha20加密算法,如果Centos7系统报错Exception: libsodium not found,则缺乏M2Cr ...
- sehll-011:case脚本的基本用法
## 注意判断的括号里的用法, 变量用双引号,且括号后面带空格.否则可能会有报错. #!/bin/bash # 我们可以认为1-3是三个不同的大脚本.我这里用简单的命令代替. echo " ...
- yolov3源码分析keras(一)数据的处理
一.前言 本次分析的源码为大佬复现的keras版本,上一波地址:https://github.com/qqwweee/keras-yolo3 初步打算重点分析两部分,第一部分为数据,即分析图像如何做等 ...
- 剑指offer六十之按之把二叉树打印成多行
一.题目 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行.二.思路 队列LinkedList完成层序遍历,用end记录每层结点数目 三.代码 import java.util.Arra ...
- 现代cpu的合并写技术对程序的影响
对于现代cpu而言,性能瓶颈则是对于内存的访问.cpu的速度往往都比主存的高至少两个数量级.因此cpu都引入了L1_cache与L2_cache,更加高端的cpu还加入了L3_cache.很显然,这个 ...
- XMind *思维导图的安装步骤(图文详解)
不多说,直接上干货! XMind中文官网: http://www.xmindchina.net/ 这一款软件,是非常实用和棒,也帮助我了很多地方.推荐给大家 需要正版和激活的,请见博文最下端的QQ技 ...
- 【原】Ubuntu13.04安装、卸载Gnome3.8
添加 GNOME 3 PPA(Personal Package Archives) 我们先给Ubuntu的Software Sources增加GNOME 3 PPA.这可以不用命令行就做到,但出于简单 ...