嵌入式系統難免要和上位機PC進行資料交換,小資料用TCP/IP實作就可以了,大檔案,動則幾百兆的資料,用Tcp/Ip自己實作有點劃不來,是以我一般采用了Ftp上傳的功能,在嵌入式組态軟體的下載下傳功能中就實作了組态的Ftp上傳,目前正在更新改造的北京隧道廣告系統的通信系統也是采用Ftp上傳功能進行節目(大約7百兆的資料)下載下傳的。
.net系統實作FTP用戶端的功能是非常容易的,下面是簡單的實作代碼:
//FTP
private WebClient client = new WebClient();
if (File.Exists(@strIOFile) == true)
{
try
{
lstInfo.Items.Insert(0, DateTime.Now.ToString() + " : 開始下載下傳IO配置檔案 ...");
Application.DoEvents();
client.UploadFile(URL + @"/parini.ini", @strIOFile);
lstInfo.Items.Insert(0, DateTime.Now.ToString() + " : IO配置檔案下載下傳完畢");
}
catch (WebException exp)
lstInfo.Items.Insert(0, DateTime.Now.ToString() + " : 錯誤:" + exp.Message);
btnDown.Enabled = true;
btnOK.Enabled = true;
return;
}
在做FTP上傳功能,有一項是必須要知道的,那就是FTP Server的根目錄,由于觸摸屏是我們自己開發的,直接跟硬體部門提出FTP Server的根目錄是什麼就行,有他們定制即可。但是在隧道系統系統,下位機是Moxa的裝置,并且FTP Server的根目錄有可能是外插的CF卡,還好Moxa的裝置FTP Server的根目錄就是WinCE的根目錄,這樣外接裝置的盤符(或目錄)就能動态的出現在FTP Server的根目錄之下了,不需要進一步進行調整了。
這裡也學到了一點FTP Server的根目錄的相關知識,當然這點知識對FTP行家不算什麼,但是對我這類使用者是非常有用的。
FTP Server的根目錄的設定在系統資料庫HKEY_LOCAL_MACHINE/Comm/FTPD選項下面,“BaseDir”和 “DefaultDir”,“BaseDir”我不知道起什麼作用,上網也沒有查出一個是以然來,“DefaultDir”這項就是根目錄設定項,如果設為“/”表示為裝置根目錄,否則可以直接設相應目錄,如“/HardDisk”,下面我是用我們的觸摸屏做實驗的,截圖如下:
根目錄為"/HardDisk"
根目錄為"/"
[葉帆]http://blog.csdn.net/yefanqiu/