本期讲一下如何在本地搭建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服务器的简单内容就这样结束了,其实我在写的时候也踩了不少坑,主要原因还是我比较菜,很多坑在网上都有人解答,这里我就列举一下我踩的坑。

  1. 没有新建一个用户用以测试FTP服务器,在连接服务器时,我们需要填写userName和passWord,其实我们可以在win10的用户管理那里新建一个用户来测试,这样的话可以不暴露你原本的用户名和密码,当然FTP服务器也要设置一番,相关的设置网上有很多,大家可以百度一下
  2. 下载是打开文件流没有关闭,这是自己的坏习惯引起的,毕竟我也只是第二次接触Java文件操作,很多地方都不够熟悉,流没有关闭会导致你想删除已下载的文件时无法删除。
  3. 用户权限没有设置,大家可以从第七步的页面,打开“FTP授权规则”查看是否设置了读取权限,如果只设置了写,那你将无法删除FTP服务器中的文件。

FTP服务器的搭建与连接相关推荐

  1. lede更改软件源_Linux的上传和下载——Ubuntu中软件的安装和ftp服务器的搭建

    [Linux操作系统]Linux的上传和下载--Ubuntu中软件的安装和ftp服务器的搭建 学习完Linux终端命令以后,我们现在要考虑的是怎么实现Linux中文件的上传和下载,这就是我们本篇博客要 ...

  2. linux下ftp服务器的搭建

    http://www.cublog.cn/u3/93926/showart_1874130.html RHEL4中ftp服务器的搭建 首先修改配置文件使主机获得永久ip地址 # vi /etc/sys ...

  3. FTP服务器的搭建及创建虚拟用户进行认证访问

    FTP服务器的搭建及创建虚拟用户进行认证访问 PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路.当需要传送数据时,客户端在命令链 ...

  4. linux如何测试ftp服务器,linux下FTP服务器的搭建

    1.FTP服务器的简介 关于ftp的介绍,大家也一定不陌生了.我就直接把百度百科上的介绍拿过来,和大家一起温习一下概念. FTP 是File Transfer Protocol(文件传输协议)的英文简 ...

  5. FTP服务器的搭建与使用FTP软件进行文件上传

    使用工具:VMware pro,windows server 2008 r2系统镜像文件 1.新建虚拟机,两个模式都可以创建 1.新建一个空白系统. 1.选择操作系统 2.选择操作系统版本 1.配置w ...

  6. 【FTP】FTP服务器的搭建

    记录一下FTP服务器的搭建 首先打开 程序和功能>打开或关闭Windows功能 进入到Windows功能界面: 勾选FTP服务器. 然后再在IIS界面,新建一个网站. 右键网站,选择" ...

  7. FTP服务器构建与维护,ftp服务器的搭建与三种访问途径

    FTP服务器的搭建与三种访问途径 FTP服务介绍 FTP服务(File Transfer Protocol,文件传输协议)是典型的C/S结构 的应用层协议,需要由服务端软件,客户端软件两部分共同实 现 ...

  8. ftp服务器21端口无法连接

    ftp服务器21端口无法连接 个人测试需要嘛,就在前几天搭了个 ftp服务器,今天要传文件和一些包上去,但是突然发现上传不了,并且用21端口无法连接到服务器,这下大感不妙,要是给别人使用这服务器的话, ...

  9. IIS ftp服务器的搭建

    IIS ftp服务器的搭建      其实现在有很多基于windows的ftp服务器,我们想搭建ftp服务器可以直接下载一个基于windows的ftp服务器软件来搭建,但是windows自带的ftp服 ...

最新文章

  1. Python3中None用法
  2. Linux DHCP服务搭建
  3. 汇编语言随笔(16)- 对磁盘进行读写(int 13h 中断例程)和实验 17
  4. 360面试题计算机面试题,奇虎360软件测试面试经验
  5. android tible控件_android自定义表单,表格控件TableRowTextView
  6. 开发海思3520a遇到的问题
  7. (八)boost库之异常处理
  8. 自动生成web服务器日志解析规则
  9. double小数点后最多几位_基金理财买入后,不断亏损,是最多本金亏光,还是会出现负值...
  10. 为了在简历上写掌握【Java虚拟机JVM】,做了该篇总结
  11. 十进制小数==二进制小数
  12. HashMap,TreeMap,LinkedHashMap学习
  13. cst时间(utc和cst时间)
  14. SCI写作之-结构和写作顺序
  15. 传奇登陆器 link.html 网页无法显示,打开登陆器后无法显示游戏各区列表的问题...
  16. Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境
  17. 如何在Office 365中使用Office剪贴板?
  18. 公司两个路由器如何进行互相访问
  19. TCP协议发送SKB时ip_summed成员的设置 http://blog.csdn.net/justlinux2010/article/details/8508455
  20. nodejs框架express之中间件的运用场景(初学)

热门文章

  1. 华硕天选3 和 rog 魔霸新锐 2022选哪个好
  2. ajax资料收集-Ajax文章(教程和实例)---Ajax资源下载(源码和教程)---Ajax规范标准
  3. Android kotilin 滴+震动提示
  4. Python语法必备篇——Python字符串 学习【文末送书】
  5. IntelliJ IDEA怎么导包?
  6. 004-2018-09-06 列表
  7. android涂鸦程序(在图像上绘制)
  8. Linux 安装WinUSB
  9. arch linux yaourt arm,在ARM设备(树莓派、香蕉派)上为Arch Linux配置yaourt
  10. Centos7 查看 CPU 核数 和 型号 和 主频(亲测有效)