欧美日韩一区二区高清,久久视频这里只有精品,超黄网站在线观看,成人av影院在线观看
[Full]
完整版
[Rss]
訂閱
[Xml]
無圖版
[Xhtml]
無圖版
Rss
& SiteMap
曙海教育集團(tuán)論壇
http://www.bjzhda.cn
曙海教育集團(tuán)論壇
◎
曙海教育集團(tuán)論壇
→
Microsoft.NET Framework
→
Microsoft .NET Framework 2.0對(duì)文件傳輸協(xié)議(FTP)操作總結(jié)1
共1 條記錄, 每頁顯示 10 條, 頁簽:
[1]
[瀏覽完整版]
標(biāo)題:Microsoft .NET Framework 2.0對(duì)文件傳輸協(xié)議(FTP)操作總結(jié)1
1樓
wangxinxin
發(fā)表于:2010-12-15 9:21:25
以下內(nèi)容含腳本,或可能導(dǎo)致頁面不正常的代碼
FTP<span class="t_tag" onclick="tagshow(event)" href="tools/ajax.aspx?t=topicswithsametag&tagid=12">上傳</span>,下載,新建,刪除,FTP間傳送文件等 最近項(xiàng)目需要對(duì)FTP服務(wù)器進(jìn)行操作,現(xiàn)把實(shí)現(xiàn)總結(jié)如下: 打算分2篇總結(jié): 第1篇總結(jié)Ftp的一些常規(guī)的操作實(shí)現(xiàn)(例如:上傳,下載,新建,刪除,FTP間互傳文件等操作) 第2篇總結(jié)Ftp的操作的一些其他實(shí)現(xiàn)(例如:<span class="t_tag" onclick="tagshow(event)" href="tools/ajax.aspx?t=topicswithsametag&tagid=129">異步</span>上傳,異步下載等其他操作) Microsoft .NET Framework 2.0新增加了3個(gè)類使我們很方便的對(duì)文件傳輸協(xié)議(FTP)服務(wù)器進(jìn)行操作 FtpWebRequest類:實(shí)現(xiàn)文件傳輸協(xié)議(FTP)客戶端 public sealed class FtpWebRequest : WebRequest FtpWebResponse類:封裝文件傳輸協(xié)議(FTP)服務(wù)器對(duì)請(qǐng)求的響應(yīng) public class FtpWebResponse : WebResponse, IDisposable WebRequestMethods.Ftp類:表示可與FTP請(qǐng)求一起使用的FTP協(xié)議方法的類型,無法繼承此類 public static class Ftp 類關(guān)系圖 附件: <a class="pin5i_attach_a" href="http://www.pin5i.com/login.aspx">FtpWebResponse_class.jpg </a> 操作ftp的一般步驟我總結(jié)如下: 第一步:WebRequest.Create方法,獲得FtpWebRequest的實(shí)例 第二步:利用WebRequestMethods.Ftp設(shè)置FtpWebRequest的Method屬性,指定使用的FTP協(xié)議方法的類型 第三步:設(shè)置FtpWebRequest的Credentials屬性,指定用戶名和密碼 第四步:發(fā)出請(qǐng)求 第五步:接收響應(yīng)數(shù)據(jù)流(有些ftp操作可能沒這一步,例如給文件夾改名) 第六步:關(guān)閉流 下面從幾段代碼來分別展示ftp的不同操作: <b>1.文件夾和文件信息</b> 關(guān)鍵知識(shí)說明: a.FtpWebRequest類沒有公開的構(gòu)造函數(shù),我們通過WebRequest.Create方法,獲得FtpWebRequest的實(shí)例 b.通過WebRequestMethods.Ftp.ListDirectoryDetails(詳細(xì)列表)或者WebRequestMethods.Ftp.ListDirectory(簡短列表)獲取FTP服務(wù)器上的文件列表 c.請(qǐng)求返回的數(shù)據(jù)在GetResponseStream方法返回的流中 d.字符編碼請(qǐng)用System.Text.Encoding.Default,要不中文名會(huì)亂碼 e.FtpWebRequest.Credentials屬性設(shè)置登陸用戶名和密碼 f.FtpWebRequest.UseBinary屬性,true,指示服務(wù)器要傳輸?shù)氖嵌M(jìn)制數(shù)據(jù).false,指示數(shù)據(jù)為文本。默認(rèn)值為true g.FtpWebRequest.EnableSsl屬性,如果控制和數(shù)據(jù)傳輸是加密的,則為true.否則為false.默認(rèn)值為 false 實(shí)例代碼: 獲取<a href="ftp://218.16.229.120/" target="_blank" rel="nofollow">ftp://218.16.229.120</a>上的文件信息 <div class="blockcode"> <div id="code26123_-1"> <ol> <li>Uri uri = new Uri ( "ftp://218.16.229.120" ); <li> <li>FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri ); <li> <li>listRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails; <li>//listRequest.Method = WebRequestMethods.Ftp.ListDirectory; <li> <li>string ftpUser = ""; <li>string ftpPassWord = ""; <li>listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord ); <li> <li>FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( ); <li>Stream responseStream = listResponse.GetResponseStream ( ); <li>StreamReader readStream = new StreamReader ( responseStream , System.Text.Encoding.Default ); <li> <li>if ( readStream != null ) <li>{ <li> MessageBox.Show ( readStream.ReadToEnd ( ) ); <li>} <li> <li>MessageBox.Show ( string.Format ( "狀態(tài): {0},{1}" ,listResponse.StatusCode, listResponse.StatusDescription ) ); <li> <li>listResponse.Close ( ); <li>responseStream.Close ( ); <li>readStream.Close ( ); </li></ol></div><em >復(fù)制代碼</em></div>通過WebRequestMethods.Ftp.ListDirectoryDetails(詳細(xì)列表)或者WebRequestMethods.Ftp.ListDirectory(簡短列表)返回的結(jié)果是不一樣的.請(qǐng)看圖 附件: <a class="pin5i_attach_a" href="http://www.pin5i.com/login.aspx">FtpWebResponse_msg.jpg </a> 利用WebRequestMethods.Ftp.ListDirectoryDetails,readStream.ReadToEnd ( )返回的字符串比較復(fù)雜(不同類型的Ftp會(huì)有不同返回形式的返回結(jié)果),要把里面的文件夾和文件區(qū)分列出來比較繁瑣,代碼比較多,所以我沒寫出來,感興趣的朋友可以留言,我可以郵件發(fā)送. <b>2.取ftp登陸身份<span class="t_tag" onclick="tagshow(event)" href="tools/ajax.aspx?t=topicswithsametag&tagid=247">驗(yàn)證</span>完成后的歡迎信息</b> 關(guān)鍵知識(shí)說明: a.FtpWebResponse.WelcomeMessage屬性獲取身份驗(yàn)證完成時(shí)FTP服務(wù)器發(fā)送的消息 實(shí)例代碼: 獲取<a href="ftp://218.16.229.120/" target="_blank" rel="nofollow">ftp://218.16.229.120</a>登陸身份驗(yàn)證完成后的歡迎信息 <div class="blockcode"> <div id="code26123_0"> <ol> <li>Uri uri = new Uri ( "ftp://218.16.229.120" ); <li> <li>FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri ); <li> <li>listRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails; <li> <li>string ftpUser = ""; <li>string ftpPassWord = ""; <li>listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord ); <li> <li>FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( ); <li> <li>MessageBox.Show ( listResponse.WelcomeMessage ); </li></ol></div><em >復(fù)制代碼</em></div>附加說明:要是FTP服務(wù)器的歡迎信息帶有中文,運(yùn)行這段代碼時(shí)可能會(huì)發(fā)生異常(基礎(chǔ)連接已經(jīng)關(guān)閉: 服務(wù)器提交了協(xié)議). 解決辦法:打補(bǔ)丁Microsoft .NET Framework 2.0 Service Pack 1 <b>3.重命名目錄</b> 關(guān)鍵知識(shí)說明: a.WebRequestMethods.Ftp.Rename表示重命名目錄的FTP協(xié)議方法 b.FtpWebRequest.RenameTo屬性重命名的新名稱 實(shí)例代碼: 把<a href="ftp://218.16.229.120/" target="_blank" rel="nofollow">ftp://218.16.229.120/</a>上的a目錄重命名為av <div class="blockcode"> <div id="code26123_1"> <ol> <li>Uri uri = new Uri ( "ftp://218.16.229.120/a" ); <li> <li>FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri ); <li> <li>listRequest.Method = WebRequestMethods.Ftp.Rename; <li> <li>string ftpUser = ""; <li>string ftpPassWord = ""; <li>listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord ); <li> <li>listRequest.RenameTo = "av"; <li> <li>FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( ); <li> <li>MessageBox.Show ( listResponse.StatusDescription ); </li></ol></div><em >復(fù)制代碼</em></div><b>4.刪除目錄</b> 關(guān)鍵知識(shí)說明: a.WebRequestMethods.Ftp.RemoveDirectory表示移除目錄的FTP協(xié)議方法 實(shí)例代碼: 刪除<a href="ftp://218.16.229.120/" target="_blank" rel="nofollow">ftp://218.16.229.120</a>上的av文件夾 <div class="blockcode"> <div id="code26123_2"> <ol> <li>Uri uri = new Uri ( "ftp://218.16.229.120/av" ); <li> <li>FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri ); <li> <li>listRequest.Method = WebRequestMethods.Ftp.RemoveDirectory; <li> <li>string ftpUser = ""; <li>string ftpPassWord = ""; <li>listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord ); <li> <li>FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( ); <li> <li>MessageBox.Show ( listResponse.StatusDescription ); </li></ol></div><em >復(fù)制代碼</em></div><b>5.新建目錄</b> 關(guān)鍵知識(shí)說明: a.WebRequestMethods.Ftp.MakeDirectory表示在FTP服務(wù)器上創(chuàng)建目錄的協(xié)議方法 實(shí)例代碼: 在<a href="ftp://218.16.229.120/" target="_blank" rel="nofollow">ftp://218.16.229.120</a>上建立目錄vb <div class="blockcode"> <div id="code26123_3"> <ol> <li>Uri uri = new Uri ( "ftp://218.16.229.120/vb" ); <li> <li>FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri ); <li> <li>listRequest.Method = WebRequestMethods.Ftp.MakeDirectory; <li> <li>string ftpUser = ""; <li>string ftpPassWord = ""; <li>listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord ); <li> <li>FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( ); <li> <li>MessageBox.Show ( listResponse.StatusDescription ); </li></ol></div><em >復(fù)制代碼</em></div><b>6.得文件大小</b> 關(guān)鍵知識(shí)說明: a.WebRequestMethods.Ftp.GetFileSize表示要用于檢索FTP服務(wù)器上的文件大小 b.流數(shù)據(jù)的長度可以從FtpWebResponse.ContentLength屬性中獲取。 實(shí)例代碼: 獲取<a href="ftp://218.16.229.120上的會(huì)議記錄.doc/" target="_blank" rel="nofollow">ftp://218.16.229.120上的會(huì)議記錄.doc</a>文件大小 <div class="blockcode"> <div id="code26123_4"> <ol> <li>Uri uri = new Uri ( "ftp://218.16.229.120/會(huì)議記錄.doc" ); <li> <li>FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri ); <li> <li>listRequest.Method = WebRequestMethods.Ftp.GetFileSize; <li> <li>string ftpUser = ""; <li>string ftpPassWord = ""; <li>listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord ); <li> <li>FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( ); <li> <li>MessageBox.Show ( string.Format ( "文件大小: {0}" , listResponse.ContentLength ) ); </li></ol></div><em >復(fù)制代碼</em></div><b>7.刪除文件</b> 關(guān)鍵知識(shí)說明: a.WebRequestMethods.Ftp.DeleteFile表示要用于刪除FTP服務(wù)器上的文件 實(shí)例代碼: 刪除<a href="ftp://218.16.229.120上的工作安排.txt/" target="_blank" rel="nofollow">ftp://218.16.229.120上的工作安排.txt</a>文件 <div class="blockcode"> <div id="code26123_5"> <ol> <li>Uri uri = new Uri ( "ftp://218.16.229.120/工作安排.txt" ); <li> <li>FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri ); <li> <li>listRequest.Method = WebRequestMethods.Ftp.DeleteFile; <li> <li>string ftpUser = ""; <li>string ftpPassWord = ""; <li>listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord ); <li> <li>FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( ); <li> <li>MessageBox.Show ( string.Format ( "Delete status: {0}" , listResponse.StatusDescription ) ); </li></ol></div><em >復(fù)制代碼</em></div><b>8.上傳文件</b> 關(guān)鍵知識(shí)說明: a.WebRequestMethods.Ftp.UploadFile表示將文件上載到FTP服務(wù)器 b.使用FtpWebRequest對(duì)象向服務(wù)器上載文件,則必須將文件內(nèi)容寫入請(qǐng)求流,請(qǐng)求流是通過調(diào)用FtpWebRequest.GetRequestStream方法.如果未將屬性設(shè)置為UploadFile,則不能獲取流。 c.異步對(duì)應(yīng)方法(FtpWebRequest.BeginGetRequestStream方法和FtpWebRequest.EndGetRequestStream 方法),關(guān)于異步上傳的實(shí)現(xiàn)我會(huì)再寫在下篇總匯中
說明:
上面顯示的是代碼內(nèi)容。您可以先檢查過代碼沒問題,或修改之后再運(yùn)行.
共1 條記錄, 每頁顯示 10 條, 頁簽:
[1]
Copyright © 2000 - 2009
曙海
教育集團(tuán)
Powered By
曙海教育集團(tuán)
Version 2.2
Processed in .01563 s, 2 queries.
[Full]
完整版
[Rss]
訂閱
[Xml]
無圖版
[Xhtml]
無圖版
主站蜘蛛池模板:
佛教
|
江油市
|
井冈山市
|
南陵县
|
黑龙江省
|
和政县
|
蓬莱市
|
余庆县
|
长阳
|
平安县
|
久治县
|
保康县
|
白水县
|
安阳县
|
舞阳县
|
滦平县
|
南岸区
|
麻阳
|
宁国市
|
梁河县
|
肥乡县
|
塔河县
|
德江县
|
辽宁省
|
伊川县
|
化州市
|
昆明市
|
山东
|
囊谦县
|
小金县
|
凌云县
|
平舆县
|
浙江省
|
闽清县
|
奉贤区
|
墨玉县
|
卫辉市
|
云南省
|
龙江县
|
东兴市
|
大厂
|