FTP服务器的搭建与连接
本期讲一下如何在本地搭建FTP服务器,并使用Java连接FTP服务器并进行简单的下载删除操作
第一步:在开始屏幕中打开“搜索”,输入“控制面板”,并打开
第二步:打开“程序与功能”
第三步:打开“启用或关闭Windows”功能
第四步:开启“FTP服务”
第五步:返回“控制面ban”,打开“管理工具” 第六步:打开“Internet Information Services(IIS)管理器”
第七步:右击“网站”,选择“添加FTP站点” 第八步:自定义FTP站点名称,并选择你所要设立成站点的文件夹(物理路径)
第九步:设置IP地址(查询本机IP地址:右键“开始”,点击“运行”,输入“cmd”,输入“ipconfig”回车,即可找到ip地址)
第十步:设置FTP站点权限(注意:权限可以随时修改,但在之后使用Java进行下载删除操作时,一定要授权所有用户读写权限,否则将无法下载)至此,属于本地的FTP服务器就搭建好了,接下来我们通过Java来连接这个服务器并进行下载删除操作。我是使用IDEA这个编译器的,用eclipes也一样的,可以参考一下,这里只是写一个FTP工具类。
第一步:新建javaclass文件,这里命名为FtpUtil
第二步:连接FTP服务器
/** 初始话ftp服务器*/public static void initFtpClient() throws Exception {int reply;ftpClient = new FTPClient();ftpClient.setControlEncoding("GBK");//设置字符模式,解决中文乱码问题ftpClient.enterLocalPassiveMode();//设置被动模式try {ftpClient.connect(ip, port); //ip是ftp服务器的ip地址,port是连接ftp的端口号,一般默认是21ftpClient.login(userName, passWord);//userName、password是设立ftp站点的用户名和密码,简单地讲就是你设置的电脑用户名和密码reply = ftpClient.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {throw new Exception("服务器连接失败");}}catch (Exception e) {e.printStackTrace();}}
第三步:下载文件
//pathName:ftp目录下的目录,假如你是直接下载ftp服务器根目录的文件,那么为“/”
//localPath:下载目录,即你要把ftp文件下载到本地哪个地方,绝对路径,如“C:\\test”
public static void downloadFile(String pathName,String localPath) throws Exception {OutputStream os = null;FtpClient ftpClient = new FtpClient();try {if (!ftpClient.isConnected())initFtpClient();ftpClient.changeWorkingDirectory(pathName);//更改目录FTPFile[] ftpFiles = ftpClient.listFiles();//文件数组//遍历文件夹中的文件for (FTPFile file : ftpFiles) {if (file.isFile()) {File localFile = new File(localPath + "/" + file.getName());os = new FileOutputStream(localFile);ftpClient.retrieveFile(file.getName(), os);os.close();//开流一定要关流,这是好习惯,假如你发现文件无法下载,可以查看是否是流没有关闭导致}}}} catch (Exception e) {e.printStackTrace();throw new Exception("下载文件失败");} finally {if (os != null) {try {os.close();} catch (IOException e) {e.printStackTrace();throw new Exception("关闭输出流失败");}}}}
第四步:删除文件
//pathName的意思跟下载相同
//删除FTP服务器中的名为fileName的文件(扩展名也要)
public static void deleFile(String pathName,String fileName) throws Exception {FtpClient ftpClient = new FtpClient();try {if (!ftpClient.isConnected())initFtpClient();ftpClient.changeWorkingDirectory(pathName);//更改目录FTPFile[] ftpFiles = ftpClient.listFiles();//文件数组for (FTPFile file : ftpFiles) {if (file.isFile()) {if (file.getName().equals(fileName))ftpClient.deleteFile(file.getName());//FtpClient自带的删除方法}}} catch (Exception e) {e.printStackTrace();throw new Exception("删除文件失败");} }
第五步:测试
public static void main(String[] args){downloadFile("/","C:\\test");deleFile("/","1.jpg");
}
到这里,关于FTP服务器的简单内容就这样结束了,其实我在写的时候也踩了不少坑,主要原因还是我比较菜,很多坑在网上都有人解答,这里我就列举一下我踩的坑。
- 没有新建一个用户用以测试FTP服务器,在连接服务器时,我们需要填写userName和passWord,其实我们可以在win10的用户管理那里新建一个用户来测试,这样的话可以不暴露你原本的用户名和密码,当然FTP服务器也要设置一番,相关的设置网上有很多,大家可以百度一下
- 下载是打开文件流没有关闭,这是自己的坏习惯引起的,毕竟我也只是第二次接触Java文件操作,很多地方都不够熟悉,流没有关闭会导致你想删除已下载的文件时无法删除。
- 用户权限没有设置,大家可以从第七步的页面,打开“FTP授权规则”查看是否设置了读取权限,如果只设置了写,那你将无法删除FTP服务器中的文件。
FTP服务器的搭建与连接相关推荐
- lede更改软件源_Linux的上传和下载——Ubuntu中软件的安装和ftp服务器的搭建
[Linux操作系统]Linux的上传和下载--Ubuntu中软件的安装和ftp服务器的搭建 学习完Linux终端命令以后,我们现在要考虑的是怎么实现Linux中文件的上传和下载,这就是我们本篇博客要 ...
- linux下ftp服务器的搭建
http://www.cublog.cn/u3/93926/showart_1874130.html RHEL4中ftp服务器的搭建 首先修改配置文件使主机获得永久ip地址 # vi /etc/sys ...
- FTP服务器的搭建及创建虚拟用户进行认证访问
FTP服务器的搭建及创建虚拟用户进行认证访问 PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路.当需要传送数据时,客户端在命令链 ...
- linux如何测试ftp服务器,linux下FTP服务器的搭建
1.FTP服务器的简介 关于ftp的介绍,大家也一定不陌生了.我就直接把百度百科上的介绍拿过来,和大家一起温习一下概念. FTP 是File Transfer Protocol(文件传输协议)的英文简 ...
- FTP服务器的搭建与使用FTP软件进行文件上传
使用工具:VMware pro,windows server 2008 r2系统镜像文件 1.新建虚拟机,两个模式都可以创建 1.新建一个空白系统. 1.选择操作系统 2.选择操作系统版本 1.配置w ...
- 【FTP】FTP服务器的搭建
记录一下FTP服务器的搭建 首先打开 程序和功能>打开或关闭Windows功能 进入到Windows功能界面: 勾选FTP服务器. 然后再在IIS界面,新建一个网站. 右键网站,选择" ...
- FTP服务器构建与维护,ftp服务器的搭建与三种访问途径
FTP服务器的搭建与三种访问途径 FTP服务介绍 FTP服务(File Transfer Protocol,文件传输协议)是典型的C/S结构 的应用层协议,需要由服务端软件,客户端软件两部分共同实 现 ...
- ftp服务器21端口无法连接
ftp服务器21端口无法连接 个人测试需要嘛,就在前几天搭了个 ftp服务器,今天要传文件和一些包上去,但是突然发现上传不了,并且用21端口无法连接到服务器,这下大感不妙,要是给别人使用这服务器的话, ...
- IIS ftp服务器的搭建
IIS ftp服务器的搭建 其实现在有很多基于windows的ftp服务器,我们想搭建ftp服务器可以直接下载一个基于windows的ftp服务器软件来搭建,但是windows自带的ftp服 ...
最新文章
- Python3中None用法
- Linux DHCP服务搭建
- 汇编语言随笔(16)- 对磁盘进行读写(int 13h 中断例程)和实验 17
- 360面试题计算机面试题,奇虎360软件测试面试经验
- android tible控件_android自定义表单,表格控件TableRowTextView
- 开发海思3520a遇到的问题
- (八)boost库之异常处理
- 自动生成web服务器日志解析规则
- double小数点后最多几位_基金理财买入后,不断亏损,是最多本金亏光,还是会出现负值...
- 为了在简历上写掌握【Java虚拟机JVM】,做了该篇总结
- 十进制小数==二进制小数
- HashMap,TreeMap,LinkedHashMap学习
- cst时间(utc和cst时间)
- SCI写作之-结构和写作顺序
- 传奇登陆器 link.html 网页无法显示,打开登陆器后无法显示游戏各区列表的问题...
- Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境
- 如何在Office 365中使用Office剪贴板?
- 公司两个路由器如何进行互相访问
- TCP协议发送SKB时ip_summed成员的设置 http://blog.csdn.net/justlinux2010/article/details/8508455
- nodejs框架express之中间件的运用场景(初学)
热门文章
- 华硕天选3 和 rog 魔霸新锐 2022选哪个好
- ajax资料收集-Ajax文章(教程和实例)---Ajax资源下载(源码和教程)---Ajax规范标准
- Android kotilin 滴+震动提示
- Python语法必备篇——Python字符串 学习【文末送书】
- IntelliJ IDEA怎么导包?
- 004-2018-09-06 列表
- android涂鸦程序(在图像上绘制)
- Linux 安装WinUSB
- arch linux yaourt arm,在ARM设备(树莓派、香蕉派)上为Arch Linux配置yaourt
- Centos7 查看 CPU 核数 和 型号 和 主频(亲测有效)