using EnterpriseDT.Net.Ftp;

/// <summary>
/// 下载FTP文件
/// </summary>
/// <param name="ftpInfo">FTP类</param>
/// <returns></returns>
public void DownFtpFiles()
{
#region
while (true)
{
List<string> fileList = new List<string>();
EnterpriseDT.Net.Ftp.FTPClient ftpClient = new EnterpriseDT.Net.Ftp.FTPClient();
try
{
System.Threading.Thread.Sleep();
log.Info("开始登陆FTP服务器");
ftpClient.RemoteHost = ftpIP;
ftpClient.Connect();
ftpClient.Login(ftpUserName, ftpPassword);
ftpClient.TransferType = FTPTransferType.BINARY; //获得所有文件列表
GetFileList(ftpClient, ftpRoot, ref fileList); log.Info("FTP服务器共有" + fileList.Count + "个文件");
//开始下载文件
if (fileList != null && fileList.Count > )
{
string fileName = null;
foreach (string fileUrl in fileList)
{
#region 判断文件是否已经下载过
fileName = fileUrl;
if (fileName.StartsWith("url_") && fileName.ToLower().EndsWith(".dat"))
{
try
{
log.Info("开始下载," + fileUrl);
ftpClient.Get(tempFileDir + "\\" + fileName, fileUrl);
File.Move(tempFileDir + "\\" + fileName, downloadFileDir + "\\" + fileName);
//记录到已下载的列表中
this.AppendDownloaded(fileUrl);
//删除远程文件
ftpClient.Delete(fileUrl); log.Info("下载成功," + fileUrl);
}
catch (Exception exp)
{
log.Info("下载或移动失败," + fileUrl + ",原因是:" + exp.ToString());
}
}
#endregion
}
}
}
catch (Exception exp)
{
log.Info("下载或移动失败,原因是:" + exp.ToString());
}
finally
{
try
{
if (ftpClient.IsConnected)
ftpClient.Quit();
}
catch (Exception ex)
{
log.Info("关闭FTP连接异常,原因是:" + ex.ToString());
}
} //System.Threading.Thread.Sleep(Tools.GetInt32(Tools.GetWebSetting("DOWNLOAD_INTERVAL"), 30) * 1000 * 60);
}
#endregion
}

FTP文件下载的更多相关文章

  1. Gradle之FTP文件下载

    Gradle之FTP文件下载 1.背景 项目上需要使用本地web,所以我们直接将web直接放入assets资源文件夹下.但是随着开发进行web包越来越大:所以我们想着从版本库里面去掉web将其忽略掉, ...

  2. java实现FTP文件下载

    package com.vingsoft.util;/*** @author 作者:dujj* @version 创建时间:2020年1月13日 下午5:53:39*/import java.io.F ...

  3. sftp,ftp文件下载

    一.sftp工具类 package com.ztesoft.iotcmp.util; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsc ...

  4. java/struts/Servlet文件下载与ftp文件上传下载

    1.前端代码 使用超链接到Struts的Action或Servlet <a target="_blank" href="ftpFileAction!download ...

  5. [原创]python之socket-ftp

    今天来讲讲ftp文件下载,感觉挺有趣的,知道吧,就那种看到新文件生成,而自己写的代码也不多,那种成就感! 一.需求: 客户端发送指令给服务端,服务端根据指令找到相应文件,发送给客户端 分析: PS:e ...

  6. FTP服务器中文环境引起润日下载不了附件问题解析

    20160229日某农商行因为FTP下载功能有问题,导致当天所有涉及FTP文件下载的交易都不能正常使用,对于银行来说影响还是比较大.现将当天出问题的原因及处理过程解析如下,忘能给碰到类似问题的同行以供 ...

  7. C# ftp 图片上传多快好省

    前言 此篇讲到的是图片上传功能,每个网站必定会有这样类似的功能,上传文件.上传图片等等.那么接下来,看看我们EF+uploadfile+ftp如何玩转上传图片吧 效果预览 具体实现 一个简单数据库 只 ...

  8. C# 获取文件下载的各种方法

    public class RemoteDownload { public static void DownLoad(string addressUrl,string localName) { //下载 ...

  9. java代码实现ftp服务器的文件上传和下载

    java代码实现文件上传到ftp服务器: 1:ftp服务器安装: 2:ftp服务器的配置: 启动成功: 2:客户端:代码实现文件的上传与下载: 1:依赖jar包: 2:sftpTools   工具类: ...

随机推荐

  1. 关于Unity中Mesh网格的详解

    3D模型 通过3D建模软件所建出来的点和面,如以三角形为主的点和面,比如人的脑袋一个球,就是由各种各样的三角形组成的点和面. 点和面以及纹理坐标都是通过3D建模软件建模出来的. Unity会帮我们把模 ...

  2. MD2关键桢动画3D模型加载.

    在看Cg教程中,看到关键桢插值来表示一个动画的物体,例如一个动物拥有站着,奔跑,下跪等动画序列,美工将这些特定的姿态称为一个关键桢.为什么要用关键桢这种来表示了,这个比较容易理解,我们知道我们看的一些 ...

  3. vector 去除重复元素(sort + unique)

    struct SIndexData { string sCode; int iDate; int iTime; double f1; SIndexData(): iDate(0), iTime(0) ...

  4. [转]jQuery选择器 (详解)

    1).基本 #id 根据给定的ID匹配一个元素.例如:$("#id")element 根据给定的元素名匹配所有元素.例如:$("div").class 根据给定 ...

  5. SpringMVC系列(四)使用 POJO 对象绑定请求参数值

    在实际开发中如果参数太多就不能使用@RequestParam去一个一个的映射了,需要定义一个实体参数对象(POJO)来映射请求参数.Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配 ...

  6. InteliJ Idea pom.xml不自动提示的解决

    file–>Settings–>Build,Execute…–>Build Tools–>Maven–>Repositories 会看到类似表格的画面,内容是你的mave ...

  7. Linux SD卡驱动开发(四) —— SD 控制器之真正的硬件操作

    前面对SD卡控制器有了一个主要的介绍.事实上SD控制器层更过的意义是为core层提供一种操作SD卡硬件的一种方法.当然不同的控制器对硬件控制的方法不尽同样,可是他们终于都能像core层提交一个统一的封 ...

  8. java 对象数组

    java 对象数组 from zhaocundang@163.com 先 用类声明数组: 再把类的实例赋给数组: package works; import java.util.Scanner; pu ...

  9. 原来找字也可以这样用ElseIf FindStr 手机按键精灵 跟大漠的区别

     原来找字也可以这样用ElseIf FindStr(646, 1109, 776, 1261, "公告小叉", "FFFFFF-333333", 0.9, in ...

  10. GCT之数学公式(平面解析几何)