1. 程式人生 > >基於SFTP的文件拷貝軟件

基於SFTP的文件拷貝軟件

相關 文件拷貝 delegate 工作效率 左右 關閉 但是 .dll bsp

最近打算自己做幾個軟件,便於提升工作效率,並且可以恢復下碼代碼的能力。第一個軟件就是基於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的文件拷貝軟件