C#WinForm实现对前一篇文章中的SFTP工具类的使用

1.winform界面设计图

2.Form1的构造方法,设置CheckForIllegalCrossThreadCalls可以忽略跨线程造成的冲突

        public Form1(){InitializeComponent();InitExcuteTimer();CheckForIllegalCrossThreadCalls = false;}

3.初始化定时器

        private void InitExcuteTimer(){for (int i = 0; i < 60; i++){cmbMin.Items.Add(i.ToString().PadLeft(2, '0'));cmbSec.Items.Add(i.ToString().PadLeft(2, '0'));}}

4.设置定时任务,间隔时间可自行改动代码进行设置

        private void TimerPlan(object sender, System.Timers.ElapsedEventArgs e){var intMinute = e.SignalTime.Minute;var intSecond = e.SignalTime.Second;var intHour = e.SignalTime.Hour;//每天8的倍数小时数信息框清空if (intHour % 8 == 0 && intMinute == Convert.ToInt32(cmbMin.Text) &&intSecond == Convert.ToInt32(cmbSec.Text)){msgTB.Text = "";}//每小时连一次sftp获取文件if (intMinute == Convert.ToInt32(cmbMin.Text) && intSecond == Convert.ToInt32(cmbSec.Text)){msgTB.Text += DateTime.Now.ToShortDateString() + ":开始连接sftp!\r\n";GetPicklistFile();}}

5.设置按钮的点击事件

        private void stBT_Click(object sender, EventArgs e){System.Timers.Timer timer = new System.Timers.Timer();if (stBT.Text.Contains("开始")){stBT.Text = "停止";cmbMin.Enabled = false;cmbSec.Enabled = false;timer.Interval = 1000;timer.Elapsed += new System.Timers.ElapsedEventHandler(TimerPlan);//timer.AutoReset = true;timer.Start();}else{stBT.Text = "开始";cmbMin.Enabled = true;cmbSec.Enabled = true;timer.Stop();timer.Close();}}

5.获取SFTP特定路径下的文件

        private void GetPicklistFile(){string filepath = @"XXX";string local = Application.StartupPath + "\\XXX";string info = "";string error = "";try{SFTPHelper sftpHelper = new SFTPHelper("XXX", "XXX", "XXX", "XXX");info=sftpHelper.Connect();if (sftpHelper.Connected){msgTB.Text += DateTime.Now.ToString() + ":" + info + "\r\n";WriteLogs("info",info);var files = sftpHelper.GetFileList(filepath, ".zip");//设置获取文件的格式if (files.Count == 0){msgTB.Text += DateTime.Now.ToString() + ":路径" + filepath + "下没有zip文件\r\n";WriteLogs("error", ":路径" + filepath + "下没有zip文件");}else{foreach (var file in files){var dl = sftpHelper.Get(filepath + "/" + file.ToString(), local + "\\" + file.ToString());if (dl.Contains("成功")){info = dl;msgTB.Text += DateTime.Now.ToString() + ":" + file.ToString() + "下载成功\r\n";WriteLogs("info", info);var del = sftpHelper.Delete(filepath + "/" + file.ToString());if (del.Contains("成功")){info = del;msgTB.Text += DateTime.Now.ToString() + ":" + file.ToString() + "删除成功\r\n";WriteLogs("info", info);}else{error = del;msgTB.Text += DateTime.Now.ToString() + ":" + file.ToString() + "删除失败\r\n";WriteLogs("error", error);}}else{error = dl;msgTB.Text += DateTime.Now.ToString() + ":" + file.ToString() + "下载失败\r\n";WriteLogs("error",error);}}}}info = sftpHelper.Disconnect();msgTB.Text += DateTime.Now.ToString() + ":与SFTP断开连接\r\n";WriteLogs("info", info);}catch (Exception ex){error = ex.Message;msgTB.Text += DateTime.Now.ToString() + ":" + ex.ToString() + "\r\n";WriteLogs("error", error);}}

6.简单地记录一下各个操作产生的日志

        public static void WriteLogs(string type, string content){string path = Application.StartupPath;if (!string.IsNullOrEmpty(path)){path = path + "\\" + type;if (!Directory.Exists(path)){Directory.CreateDirectory(path);}path = path + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".txt";if (!File.Exists(path)){FileStream fs = File.Create(path);fs.Close();}if (File.Exists(path)){StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.Default);sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + ":" + type + "-->" + content);sw.WriteLine("----------------------------------------");sw.Close();}}}

C#WinForm实现对前一篇文章中的SFTP工具类的使用相关推荐

  1. 统计标点符号的次数 java_Java实现统计一篇文章中每个单词出现的次数

    使用Java正则表达式 和HashMap(哈希表)统计一篇文章中的每个单词出现的次数(去除标点符号和空格) import java.io.BufferedReader; import java.io. ...

  2. python分词统计词频_-用python找出一篇文章中词频最高的20个单词

    python统计一个大文件中很多小文件里面的词频 #!/usr/bin/env python3.6 from collections import Counter from functools imp ...

  3. 统计一篇文章中各个字母出现的次数和百分比

    package interview;import java.io.BufferedReader; import java.io.FileNotFoundException; import java.i ...

  4. python:实现统计一篇文章中每个单词出现的次数 (附完整源码)

    python:实现统计一篇文章中每个单词出现的次数 文本分析是Python的一大利器.以下是一个简单的例子,用来统计一篇文章中每个单词出现的次数: text = "this is a sam ...

  5. 《Java并发编程的艺术》——Java中的并发工具类、线程池、Execute框架(笔记)

    文章目录 八.Java中的并发工具类 8.1 等待多线程完成的CountDownLatch 8.2 同步屏障CyclicBarrier 8.2.1 CyclicBarrier简介 8.2.2 Cycl ...

  6. 《Java并发编程的艺术》读后笔记-Java中的并发工具类(第八章)

    文章目录 <Java并发编程的艺术>读后笔记-Java中的并发工具类(第八章) 1.等待多线程完成的CountDownLatch 2.同步屏障CyclicBarrier 2.1 Cycli ...

  7. Android项目中常用的工具类集(史上最全整理)

    如果你是一名有经验的Android开发者,那么你一定积累了不少的工具类,这些工具类是帮助我们快速开发的基础.如果你是新手,那么有了这些辅助类,可以让你的项目做起来更加的简单. 下面介绍一个在GitHu ...

  8. commons-lang3-3.2.jar中的常用工具类的使用

    这个包中的很多工具类可以简化我们的操作,在这里简单的研究其中的几个工具类的使用. 1.StringUtils工具类 可以判断是否是空串,是否为null,默认值设置等操作: /*** StringUti ...

  9. java编程中的断言工具类(org.springframework.util.Assert)

    转自:https://blog.csdn.net/gokeiryou263/article/details/19612471 断言工具类:Assert类, java.lang.Object ---&g ...

  10. Android中对话框的工具类

    Android中对话框的工具类,里面总结了比较好用的方法,直接调用即可 public class DialogUtils {private DialogUtils() {}private static ...

最新文章

  1. 从5个经典工作开始看语义SLAM
  2. 测序数据质量统计软件fastqc,multiqc
  3. 那些臭名昭著的sql
  4. 在 StringGrid 上画线时, 使用 GDI+ 以消除锯齿 - 回复 gsjn_8888_6666 的问题
  5. kali2018.2安装配置OpenVAS-9及错误处置
  6. 03 在百度地图上定位到指定位置
  7. 寻找数组中只出现一次的数
  8. 51单片机 自动重装载值计算
  9. php5.2.3 zend3,windows 2008 R2 下 IIS7.5+PHP5.2.17+Mysql5.5.16+Zend3.3.3
  10. java 多线程 优先级_java多线程之线程的优先级
  11. 的run窗口不显示_「玩转deepin」如何安装VirtualBox增强功能使得deepin全屏显示?...
  12. iphone6s发布会_iPhone 6S/SE升级iOS 13性能测试:App启动速度比iOS 12.4.1慢
  13. 【微信小程序】初识小程序
  14. 工业机器人用铸铁牌号_锻钢牌号表示方法你了解么?
  15. Java中的数组,java开发面试笔试题
  16. Android最常用的控件ListView(详解)
  17. 电脑安全证书错误怎么处理比较好
  18. linux授权文件夹777,服务器上如何修改文件夹777权限
  19. 【数据库架构】NewSQL和PGXC
  20. django 注册登录邮箱验证功能

热门文章

  1. Unity——浅谈AB包(AssetBundle)
  2. 修改IP4属性时,针对闪退问题的解决方法
  3. Python游戏编程(Pygame)
  4. 启用windows功能NetFx3时出错的离线解决方案
  5. sidirect 连接西门子_INTOUCH DASSIDirect3.0 DASSIDirect3.0驱动是西门子PLC与Intouch连接通讯的必备驱动程序 - 下载 - 搜珍网...
  6. android tab activity,Android   ActivityGroup和TabActiviy的差异性
  7. Citrix 桌面云 XenApp_XenDesktop_7.15 部署系列(九)客户端使用
  8. php数据库根据手机号获取归属地,PHP通过API获取手机号码归属地
  9. 沟通CTBS助大川集团集中部署K/3系统
  10. 中考计算机表格操作题,中考信息技术Excel操作题.xls