版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于C#的FTP客戶端實(shí)現(xiàn)目 錄摘要1引言11. FTP協(xié)議分析11.1. FTP的工作原理11.2. FTP工作模式21.3. FTP傳輸模式42. FTP客戶端總體設(shè)計(jì)52.1. 設(shè)計(jì)目的及開發(fā)環(huán)境52.1.1. 設(shè)計(jì)目的與.NET環(huán)境簡介52.1.3. FtpWebRequest 類62.2. 系統(tǒng)UML分析62.2.1. FTP客戶端用例圖62.2.2. FTP客戶端主要序列圖與活動(dòng)圖82.2.4. FTP客戶端類圖122.3. 系統(tǒng)功能模塊152.3.1. 系統(tǒng)整體框架圖152.3.2. 客戶端功能模塊152.3.3. 客戶端界面設(shè)計(jì)162.4. 數(shù)據(jù)流程圖192.4.1. 客戶端連
2、接流程圖192.4.2. 上傳子模塊流程圖212.4.3. 下載子模塊流程圖223. FTP客戶端程序?qū)崿F(xiàn)233.1. WPF界面設(shè)計(jì)233.1.1. 首頁界面詳細(xì)設(shè)計(jì)233.1.2. 文件傳輸界面詳細(xì)設(shè)計(jì)243.1.3. 操作歷史記錄顯示界面詳細(xì)設(shè)計(jì)263.1.4. 常用地址查詢模塊設(shè)計(jì)263.2. 功能模塊實(shí)現(xiàn)273.2.1. 連接服務(wù)器273.2.2. 顯示服務(wù)器端文件清單283.2.3. 上傳文件293.2.4. 下載文件293.2.5. 查詢歷史記錄303.2.6. 常用地址管理314. 數(shù)據(jù)庫建設(shè)314.1. 數(shù)據(jù)庫表結(jié)構(gòu)314.2. 數(shù)據(jù)庫關(guān)系模型324.3. 數(shù)據(jù)庫ER圖334
3、.4. 數(shù)據(jù)庫建表語句335. 結(jié)語34參考文獻(xiàn)3532基于C#的FTP客戶端設(shè)計(jì)與實(shí)現(xiàn)圖 1-1 FTP工作模式圖 上圖中用戶PI開始控制連接,控制連接與Telnet協(xié)議很象。在開始階段,標(biāo)準(zhǔn)FTP命令由用戶PI產(chǎn)生并通圖 1-2過控制連接傳送到服務(wù)器進(jìn)程。服務(wù)器PI向用戶PI返回標(biāo)準(zhǔn)應(yīng)答。FTP命令指定數(shù)據(jù)連接參數(shù)和文件系統(tǒng)操作。用戶DTP在特定數(shù)據(jù)端口偵聽,服務(wù)器開始數(shù)據(jù)連接并以指定的參數(shù)開始數(shù)據(jù)傳輸。數(shù)據(jù)端口不必在開始FTP命令的機(jī)器上,但用戶或用戶FTP進(jìn)程必須確定它在指定的數(shù)據(jù)端口上偵聽.這個(gè)數(shù)據(jù)連接是全雙工的。1. FTP客戶端總體設(shè)計(jì)1.1. 設(shè)計(jì)目的及開發(fā)環(huán)境1.1.1. 設(shè)
4、計(jì)目的 FTP早已應(yīng)用在網(wǎng)絡(luò)的各個(gè)方面,比如我們在訪問網(wǎng)絡(luò)上的資源時(shí),經(jīng)常會(huì)遇到需要連接FTP服務(wù)器來下載,或者你制作了一個(gè)網(wǎng)站,想要將其上傳至服務(wù)器,讓大家能夠訪問它,這個(gè)時(shí)候就會(huì)用到FTP客戶端。雖然平時(shí)使用windows自帶的IE瀏覽器即可實(shí)現(xiàn)對(duì)FTP服務(wù)器的訪問,但是IE只是個(gè)很粗糙的FTP客戶端。IE瀏覽器在6.0以下的版本不支持PASV方式訪問服務(wù)器,而且IE瀏覽器在登錄FTP服務(wù)器的時(shí)候,無法查看返回的信息,在出錯(cuò)的時(shí)候,無法找到錯(cuò)誤的原因,因此在使用上很不方便?,F(xiàn)在大多數(shù)的FTP客戶端軟件都是收費(fèi)版的,而且以英文版居多,使用上操作很復(fù)雜,目前流行的有CoreFtp、AceFtp
5、、FtpVoyager等,但是大多數(shù)用戶并不習(xí)慣使用這些軟件。本文所設(shè)計(jì)的FTP客戶端則適合大多數(shù)用戶使用,界面設(shè)計(jì)的很簡單,使用戶可以一目了然,而且具備FTP客戶端的基本功能,可以作為下載、上傳文件的工具來使用。1.1.2. NET環(huán)境簡介 Visual StudioNET是一個(gè)開發(fā)和運(yùn)行軟件的新環(huán)境,便于開發(fā)基于網(wǎng)絡(luò)的服務(wù),擁有豐富的運(yùn)行庫,支持多種編程語言編寫的組件,具有跨語言平臺(tái)的互操作能力。C#是NET平臺(tái)中最重要的語言,它本身沒有類庫,而是使用NET框架所提供的統(tǒng)一類庫,用戶也可以定義特定域的屬性,并將它們應(yīng)用于任何語言元素如類、接口等,所以對(duì)網(wǎng)絡(luò)應(yīng)用程序提供完整的支援,這使得程序
6、員能夠在新的微軟NET平臺(tái)上快速開發(fā)出種類豐富的應(yīng)用程序。1.1.3. FtpWebRequest 類C#.NET類庫的存在使它適合于一個(gè)不斷發(fā)展的環(huán)境。在類庫中我們可以自由地加入新的方法和實(shí)例變量而不會(huì)影響用戶程序的執(zhí)行。NET平臺(tái)封裝了實(shí)現(xiàn)FTP功能的一些基礎(chǔ)類,位于命名空間為SystemNet下的FtpWebRequest類用于實(shí)現(xiàn)文件傳輸協(xié)議(FTP)客戶端的一些基本功能。二次封裝了類FFP_Class,其成員包括string tipserveriP (服務(wù)器地址)、string ftpUseriD(登陸賬號(hào))、string ftpPassword (登錄密碼)和FtpWebReque
7、st reqFTP。本文所使用的FtpWebRequest類的構(gòu)造方法和主要方法如下:FtpWebRequest reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(Path);此構(gòu)造函數(shù)利用給出的主機(jī)名建立一條FTP連接,目的連接地址為Path所指定的地址,并建立URI對(duì)象。reqFtp.UseBinary = true;這條程序指定傳輸類型為Binary。 reqFtp.Credentials = new NetworkCredential(ftpUserId, ftpPassword);此方法利用參數(shù)ftpUserId和ftpPass
8、word登錄到FTP服務(wù)器。使用過Internet的用戶應(yīng)該知道,匿名FTP服務(wù)器的登錄用戶名為anonymous,密碼一般用自己的電子郵件地址。1.2. 系統(tǒng)UML分析1.2.1. FTP客戶端用例圖1) 0層用例圖圖 1-1 0層用例圖用戶通過Ftp客戶端系統(tǒng)進(jìn)行文件傳輸。2) 1層用例圖圖 1-2 1層用例圖在Ftp客戶端系統(tǒng)中,主要包括六個(gè)用例,分別是列出服務(wù)器端文件列表(ListServerFile)、從服務(wù)器端下載文件(DownLoadFile)、向服務(wù)器端上傳文件(UpLoadFile)、列出歷史記錄(ListHistory)、對(duì)常用地址的操作(OpeatUsefulAddres
9、s)和輸入用戶登錄信息(EnterUserInfo)。其中,每一個(gè)用例都包含EnterUserInfo用例,列出服務(wù)器文件列表(ListServerFile)用例擴(kuò)展了下載文件(DownLoadFile)用例。3) 二層用例圖a. ListServerFileList子用例圖。圖 1-3 2層用例圖ListServerFileList用例包含了兩個(gè)子用例,分別為列出服務(wù)器端文件列表(ShowServerFileList)、打開目錄(ChangeDirectory)。打開目錄用例指的是打開服務(wù)器端子目錄,獲取子目錄。b. OperatUsefulAddress子用例圖。圖 1-4 OperatU
10、sefulAddress子用例圖OperatUsefulAddress用例包含了兩個(gè)子用例圖,分別為顯示常用的ftp服務(wù)器端地址(ShowUserfulAddress)、添加常用的服務(wù)器地址(AddUsefulAddress)。1.2.2. FTP客戶端主要序列圖1) ShowServerFileList序列圖圖 1-5 ShowServerFileList序列圖2) ChangeDirectory序列圖圖 1-6 ChangeDirectory序列圖3) DownLoadFile序列圖圖 1-7 DownLoadFile序列圖4) UpLoadFile序列圖圖 1-8 UpLoadFile序
11、列圖5) ListHistory序列圖圖 1-9 ListHistory序列圖 6) AddUsefulAddress序列圖圖 1-10 AddUsefulAddress序列圖1.2.3. FTP客戶端主要活動(dòng)圖1) DownLoadFile活動(dòng)圖圖 1-11 DownLoadFile活動(dòng)圖2) UpLoadFile活動(dòng)圖圖 1-12 UpLoadFile活動(dòng)圖1.2.4. FTP客戶端類圖1) 類關(guān)系圖圖 1-13 FTP客戶端類圖2) 邊界類-IndexPage、DownLoadPage、HisetoryPage、UsefulAddressPage圖 1-14 邊界類客戶端中的主要邊界類是
12、顯示各功能模塊的頁面,包括顯示主頁的IndexPage,顯示下載界面的DownLoadPage,顯示歷史記錄的HistoryPage,顯示常用地址的UsefulAddressPage。用于與用戶的交互,獲取用戶輸入的信息,顯示信息。3) 控制類-DataBaseHander圖 1-15 控制類-DataBaseHande控制類-DataBaseHande,封裝了對(duì)于數(shù)據(jù)庫的操作,是數(shù)據(jù)庫操作類,包括的方法有:插入歷史記錄(InsertHistory)查找歷史記錄(selectHistory)插入常用地址(InsertUsefulAddr)查找常用地址(selectUsefulAddr)刪除常用
13、地址(DeleteUsefulAddr)系統(tǒng)通過調(diào)用該類對(duì)象的該類方法實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。4) 控制類-FtpHander圖 1-16 控制類-FtpHander控制類-FtpHander,封裝了對(duì)于Ftp文件傳輸?shù)牟僮?,包括的方法有:連接Ftp客戶端(connect)獲取服務(wù)器端文件目錄(getServerFileList)上傳文件(UpLoadFile)下載文件(DownLoadFile)通過該類實(shí)現(xiàn)對(duì)于文件的操作和服務(wù)器的連接和方法請求。5) 控制類-LocalHander圖 1-17 控制類-LocalHander控制類-LocalHander,封裝了對(duì)于本地路徑的操作,包括的方法有:
14、獲取本地目錄下的文件列表(GetLocalFileList)客戶端通過該類實(shí)現(xiàn)對(duì)本地文件的操作。6) 角色類-FtpAddr圖 1-18 角色類-FtpAddr角色類-FtpAddr,表示Ftp服務(wù)器端的抽象類。屬性:Ftp服務(wù)器端名稱(FtpName)string型Ftp服務(wù)器端地址(FtpAddress)string型方法:獲取服務(wù)器端名稱(getFtpName)設(shè)置服務(wù)器端名稱(setFtpName)獲取服務(wù)器端IP地址(getFtpIPaddr)設(shè)置服務(wù)器端IP地址(setFtpIPaddr)7) 角色類-FileName圖 1-19 7)角色類-FileName角色類-FileNam
15、e,表示文件的抽象類。屬性:文件名稱(name)string型文件大?。╯ize)string型方法:獲取文件名稱(getName)設(shè)置文件名稱(setName)獲取文件大?。╣etSize)設(shè)置文件大?。╯etSize)1.3. 系統(tǒng)功能模塊1.3.1. 系統(tǒng)整體框架圖圖 1-20 系統(tǒng)整體框架圖1.3.2. 客戶端功能模塊 FTP客戶端作為用戶連接FTP服務(wù)器的工具,需要具備一些基本功能模塊,如連接、上傳、下載等,其中最主要的五大功能模塊如下:1. 下載功能模塊:連接用戶指定的FTP服務(wù)器,獲取服務(wù)器目錄下的文件列表,當(dāng)用戶選擇項(xiàng)目為文件時(shí),點(diǎn)擊下載可以下載用戶所需要的文件。選定文件后提示
16、用戶將文件存儲(chǔ)在何處,用戶選擇存儲(chǔ)區(qū)后開始下載任務(wù)。依靠FTP協(xié)議的支持,用戶下載的文件沒有類型和大小限制,即用戶可已選擇任何自己想要下載的文件,通過FTP客戶端進(jìn)行下載。2. 上傳功能模塊:用戶可以自行選擇本機(jī)上存儲(chǔ)的文件,上傳至FTP服務(wù)器。在用戶選擇存儲(chǔ)在服務(wù)器的位置后,點(diǎn)擊上傳,選擇所需要上傳的文件,即可將文件上傳至服務(wù)器。3. 連接功能模塊:將用戶本機(jī)與指定的IP地址連接,驗(yàn)證用戶命和密碼,在FTP服務(wù)器上進(jìn)行注冊。4. 顯示服務(wù)器文件模塊:顯示ftp服務(wù)器端的文件列表,包括切換服務(wù)器目錄功能。圖 1-21 顯示服務(wù)器文件模塊5. 顯示歷史記錄模塊:列出以往的操作記錄,方便用戶查詢所
17、下載的文件信息。6. 常用地址操作模塊:包括查詢常用地址和增加常用地址兩個(gè)功能。圖 1-22 常用地址操作模塊有了這六個(gè)基本的功能模塊,客戶端的基本應(yīng)用功能即可實(shí)現(xiàn)。1.3.3. 客戶端界面設(shè)計(jì)為了使用戶能夠方便的使用FTP客戶端,在設(shè)計(jì)中我將數(shù)據(jù)輸入和信息顯示整合在一個(gè)頁面中,全部客戶端僅包含一個(gè)主要的窗口,窗口中有4個(gè)WPF頁分別包括以下四個(gè)主要頁界面:1、 首頁:用戶打開軟件所見到的的界面。圖 1-23 首頁2、 文件傳輸界面:文件傳輸界面分為三層結(jié)構(gòu),第一層為用戶下載地址輸入層,第二層為目標(biāo)FTP服務(wù)器端文件列表,第三層為本地下載路徑中的文件列表。圖 1-24 文件傳輸界面3、 歷史記
18、錄查詢界面:從數(shù)據(jù)庫中讀取用戶的操作歷史記錄,讓用戶查詢曾經(jīng)下載的文件信息。圖 1-25 歷史記錄查詢界面4、 常用地址界面,列出常用的ftp服務(wù)器地址,方便用戶使用,并提供自行添加地址的功能。圖 1-26 常用地址界面1.4. 數(shù)據(jù)流程圖1.4.1. 客戶端連接流程圖運(yùn)行客戶端后,首先是連接服務(wù)器,需要輸入服務(wù)器IP地址點(diǎn)擊連接按鈕后開始連接服務(wù)器。下圖為客戶端連接流程圖。圖 1-27 客戶端連接流程圖連接的結(jié)果有兩種,即圖中顯示的連接失敗和連接成功。1.4.2. 上傳子模塊流程圖 當(dāng)用戶點(diǎn)擊上傳按鈕后,用戶可以選擇需要上傳的文件,將本機(jī)上的文件上傳至FTP服務(wù)器。下圖為上傳子模塊流程圖。圖
19、 1-28 上傳模塊流程圖 上傳的結(jié)果有兩種,上傳失敗和成功,失敗時(shí)會(huì)提示用戶上傳失敗,原因可能是權(quán)限,如果成功上傳,則提示上傳成功。1.4.3. 下載子模塊流程圖當(dāng)用戶在服務(wù)器文件列表中選擇想要下載的文件后,選擇需要下載文件在本機(jī)上的存儲(chǔ)位置,將服務(wù)器上的文件下載至本機(jī)。下圖為上傳子模塊流程圖。圖 1-29 下載模塊流程圖2. FTP客戶端程序?qū)崿F(xiàn)2.1. WPF界面設(shè)計(jì)2.1.1. 首頁界面詳細(xì)設(shè)計(jì)首頁左側(cè)有四個(gè)按鈕連接到不同功能的WPF頁,主要界面為歡迎界面,用戶可以通過點(diǎn)擊按鈕選擇需要的功能。通過datagrid來布局整個(gè)頁面。主要Wpf設(shè)計(jì)代碼: 2.1.2. 文件傳輸界面詳細(xì)設(shè)計(jì)文
20、件傳輸界面分為三層結(jié)構(gòu),第一層為用戶下載地址輸入層,第二層為目標(biāo)FTP服務(wù)器端文件列表,第三層為本地下載路徑中的文件列表。通過Grid將整個(gè)頁面分為三行,每一行嵌入一個(gè)stackpanel,并在第一行再次用Grid布局將第一行分為三列,第一列放提示信息用的label,第二列放輸入用的inputtex,第三列放一個(gè)button控件。頁面結(jié)構(gòu)wpf代碼: 第一層用來記錄用來輸入服務(wù)器的站點(diǎn),用戶名和密碼信息,然后將信息發(fā)送到服務(wù)器進(jìn)行驗(yàn)證,利用inputBox控件來實(shí)現(xiàn)。在程序運(yùn)行時(shí),用戶在輸入框url中輸入的FTP服務(wù)器站點(diǎn)。利用點(diǎn)擊按鈕觸發(fā)onClick事件獲取輸入框中的數(shù)據(jù),將url中的數(shù)據(jù)
21、存儲(chǔ)至path變量 中,將username中的數(shù)據(jù)存儲(chǔ)至username中;Wpf設(shè)計(jì)代碼: 第二層的作用是是顯示服務(wù)器文件列表,利用Datagrid控件來實(shí)現(xiàn)。在客戶端主界面創(chuàng)建一個(gè)Datagrid,命名為gridServerFileList,并置于主界面中間,該表格包括三個(gè)數(shù)據(jù)項(xiàng):文件名file,文件大小filesizes,修改日期filedates,使用一個(gè)ListserverFileList來存儲(chǔ)這三個(gè)數(shù)據(jù)。當(dāng)客戶端連接上服務(wù)器時(shí),表格數(shù)據(jù)自動(dòng)更新,主要功能使用getServerfFileList()函數(shù)實(shí)現(xiàn)。當(dāng)服務(wù)器連接切換到當(dāng)前目錄,通過對(duì)WebRequestMethods.Ftp
22、的method賦值為ListDirectory并獲取來自服務(wù)器端的應(yīng)答流,讀取應(yīng)答流來實(shí)現(xiàn)。Wpf設(shè)計(jì)代碼: /Border第三層的作用是是顯示本地文件列表,和第二層一樣利用Datagrid控件來實(shí)現(xiàn)。在客戶端主界面創(chuàng)建一個(gè)Datagrid,命名為localFileList,并置于主界面中間,該表格包括三個(gè)數(shù)據(jù)項(xiàng):文件名file,文件大小filesizes,修改日期filedates,使用一個(gè)ListlocalFileList來存儲(chǔ)這三個(gè)數(shù)據(jù)。當(dāng)客戶端連接上本地時(shí),表格數(shù)據(jù)自動(dòng)更新,主要功能使用getLocalFileList()函數(shù)實(shí)現(xiàn)。當(dāng)服務(wù)器連接切換到當(dāng)前目錄,通過對(duì)調(diào)用GetLocal
23、FileList()函數(shù)獲取來自本地目錄的應(yīng)答流,讀取應(yīng)答流來實(shí)現(xiàn)。Wpf設(shè)計(jì)代碼: 2.1.3. 操作歷史記錄顯示界面詳細(xì)設(shè)計(jì) 這個(gè)模塊是歷史信息顯示模塊,使用datagrid控件實(shí)現(xiàn)。通過從數(shù)據(jù)庫中讀取數(shù)據(jù),作為datagrid的數(shù)據(jù)源。Wpf設(shè)計(jì)代碼: 2.1.4. 常用地址查詢模塊設(shè)計(jì)此模塊主要存儲(chǔ)常用的一些ftp服務(wù)器地址方便用戶下載資源,用戶也可以通過添加按鈕添加地址。此模塊主要分為兩層,上層為信息輸入模塊,通過一個(gè)提示lable,兩個(gè)輸入框inputTex和一個(gè)button控件來獲取用戶輸入的服務(wù)器端信息。Wpf布局代碼: 上層設(shè)計(jì)代碼:下層設(shè)計(jì)代碼: 2.2. 功能模塊實(shí)現(xiàn)2.
24、2.1. 連接服務(wù)器客戶端中FtpHander類中connect方法用來實(shí)現(xiàn)連接服務(wù)器功能,在C#.NET中實(shí)現(xiàn)這一功能是借助FtpWebRequest類完成的,首先是使用FtpWebRequest類的(FtpWebRequest)FtpWebRequest.Create(new Uri(Path);方法打開遠(yuǎn)程FTP服務(wù)器,然后使用FtpWebRequest類的NetworkCredential(ftpUserId, ftpPassword);方法登錄服務(wù)器。登錄遠(yuǎn)程FTP服務(wù)器有兩種方式,一種是注冊用戶登錄,另一種是以匿名方式登錄。使用第一種方式登錄需要擁有該服務(wù)器的注冊用戶名和密碼,匿名
25、方式則是以anonymous作為用戶名來登錄。類FtpWebRequest提供了如下兩個(gè)可用于打開與FTP服務(wù)器之間的連接的方法1. FtpWebRequest.Create(new Uri(Path)用于創(chuàng)建與ftp服務(wù)器端連接的對(duì)象。 2. reqFtp.UseBinary = true;用于指定數(shù)據(jù)傳輸類型3. reqFtp.Credentials = new NetworkCredential(ftpUserId, ftpPassword);用于建立一條與指定主機(jī)、指定端口上的FTP服務(wù)器的連接。本文所使用的是第一種方法進(jìn)行連接,首先定義4個(gè)字符串,命名為username,passwo
26、rd,分別用來接收來自數(shù)據(jù)輸入界面的數(shù)據(jù)。然后將接收到的數(shù)據(jù)發(fā)送至服務(wù)器驗(yàn)證,驗(yàn)證成功則使用對(duì)話框函數(shù)在信息顯示界面中提示連接成功,失敗則顯示連接失敗。核心代碼如下:reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(Path);/創(chuàng)建對(duì)象 reqFtp.UseBinary = true;/指定傳輸類型 reqFtp.Credentials = new NetworkCredential(ftpUserId, ftpPassword);/登錄2.2.2. 顯示服務(wù)器端文件清單客戶端中實(shí)現(xiàn)顯示服務(wù)器端的文件為FtpHander類中的GetSe
27、rverFileList(DataGrid gridServerFileList,string path)函數(shù)來實(shí)現(xiàn)。當(dāng)用戶選擇文件下載時(shí),客戶端會(huì)創(chuàng)建一個(gè)到FTP服務(wù)器的連接,同樣使用FtpWebRequest類的FtpWebRequest.Create(new Uri(Path)方法和reqFtp.Credentials = new NetworkCredential(ftpUserId, ftpPassword);操作登錄到服務(wù)器,把傳輸格式設(shè)置為二 進(jìn) 制 格 式 , 向服務(wù)器發(fā)送 reqFtp.Method = WebRequestMethods.Ftp.ListDirectory;
28、操作獲取文件列表,利用服務(wù)器FtpWebRequest對(duì)象的GetRequestStream ()方法獲取服務(wù)器端傳輸過來的數(shù)據(jù)流,將流中數(shù)據(jù)寫入數(shù)組緩存中,并利用streamreader對(duì)象讀出文件列表的內(nèi)容放入serverFileList中作為datagrid的數(shù)據(jù)源顯示在datagrid中。核心代碼如下:reqFtp.Method = WebRequestMethods.Ftp.ListDirectory; WebResponse response = reqFtp.GetResponse(); StreamReader reader = new StreamReader(respons
29、e.GetResponseStream(); string line = reader.ReadLine(); while (line != null) FileName fn = new FileName(line); serverFileList.Add(fn); line = reader.ReadLine(); /獲取文件大小 for (int i = 0; i 0) rw.Write(buffer);readcount=ftpStream.Read (buffer,0,bufferSize);rw.Close();fs.Close();2.2.5. 查詢歷史記錄查詢歷史記錄功能主要是通過數(shù)據(jù)庫操作來實(shí)現(xiàn)的,我在程序中為數(shù)據(jù)庫操作封裝了一個(gè)DataBaseHander類,包括查詢插入刪除方法,每次用戶在上傳或下載一次文件時(shí),就調(diào)用DataBaseHander類的InsertHistory(string filename
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024股份轉(zhuǎn)讓合同范本
- 2024就業(yè)協(xié)議和勞動(dòng)合同有何區(qū)別
- 2024美容師聘用合同范本
- 2024解除勞動(dòng)合同申請范本
- 2024個(gè)人借款合同范本「簡單」
- 綠色節(jié)能班會(huì)
- 蘇州科技大學(xué)天平學(xué)院《員工培訓(xùn)與開發(fā)》2021-2022學(xué)年第一學(xué)期期末試卷
- 蘇州科技大學(xué)天平學(xué)院《外國文學(xué)一》2021-2022學(xué)年第一學(xué)期期末試卷
- 光學(xué)儀器在交通工程中的應(yīng)用考核試卷
- 廣告媒體與渠道管理考核試卷
- 旅游管理信息系統(tǒng)教材課件匯總完整版ppt全套課件最全教學(xué)教程整本書電子教案全書教案合集最新課件匯編
- 三年級(jí)下冊美術(shù)課件-第4課 瓜果飄香丨贛美版
- 綠電制綠氫及其綜合利用技術(shù)PPT
- JJG646-2006移液器檢定規(guī)程-(高清現(xiàn)行)
- 【課題研究】-《普通高中英語閱讀課文教學(xué)研究》結(jié)題報(bào)告
- 嚴(yán)重精神障礙管理工作規(guī)范課件(PPT 39頁)
- 羊常見普通病類型和防治
- 梁板柱同時(shí)澆筑及方案
- 溝槽開挖支護(hù)專項(xiàng)施工方案(46頁)
- 2021-2022學(xué)年部編版語文八年級(jí)下冊第二單元主題綜合實(shí)踐作業(yè)——生活中的科學(xué)
- cochrane納入的RCT文獻(xiàn)質(zhì)量評(píng)價(jià)風(fēng)險(xiǎn)偏倚評(píng)估工具中英文對(duì)照
評(píng)論
0/150
提交評(píng)論