基于SFTP的文件拷贝软件
Posted Reaver21
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于SFTP的文件拷贝软件相关的知识,希望对你有一定的参考价值。
最近打算自己做几个软件,便于提升工作效率,并且可以恢复下码代码的能力。第一个软件就是基于SFTP的一个文件拷贝软件。目前可以拷贝选定远程服务器上的文件/文件夹内所有内容到本地目录。界面大致如下:
右边空白较大,因为还有些其他功能尚未完善。
软件主要有以下几个功能:
1. 用户选择想要连接的linux服务器名称(IP地址和密码软件内置,因为不想让用户看到)
2.连接到服务器后可显示根目录(内置)下所有文件及文件夹,忽略连接。
3.用户在左侧选中文件/文件夹后,在右侧配置本地目录,点击StartCopy即可拷贝到本地。
4. 右侧目标目录在关闭软件时会保存到软件的Setting中。
使用的技术:
1. Winform界面开发。为了尽快使用,没有使用WPF等开发技术,仅使用了VS2017里面标配的Winform的tool。
2. 跨线程更新Winform。这个问题几年前就遇到过了,主要是在Thread里面要更新Winform的显示,在子线程中使用BeginInvoke方法及delegate。后续补充几个博文链接,还是挺有用的。
3.ListView的使用。增加Column,Item,SubItem等。
4. SFTP组件的使用。因为C#貌似没有原生的sftp组件(也可能是我没找到),所以尝试了几个第三方组件,Tamir.SharpSSH.dll和Renci.SshNet.dll在建立connection的时候都有被主机拒绝的异常,估计是host key询问没处理明白。后来用了ComponentPro的组件,比较好用,不过是收费的,试用30天,30天后再看看怎么处理吧。
5. 目录前进与后退的简单逻辑。主要是根据path中的"/"截取目录位置。
程序比较简单,大概用了一周的时间,每天下班后8-10点左右吧。既然做了东西,还是记录下。涉及的相关内容后续慢慢补充吧。
另外还想做个登录界面,管理下用户登录。但是又没有服务器存储用户注册信息,想弄个配置文件,将用户名和密码写进去。可能会用xml格式,密码应该会加密后写进去,加密方式还没定, 可能会用RSA吧,公钥加密后,私钥放在软件程序代码里,解密用。
下一个软件想破解某excel查询功能,主要使用vba写的宏代码,目前代码已经到手,先看看vba语法,然后可能用C#或Java重写程序,应该也是Winform的软件,便于查询。
以上是关于基于SFTP的文件拷贝软件的主要内容,如果未能解决你的问题,请参考以下文章
Windows远程文件拷贝openEuler--WinSCP