波多在线播放_激情深爱五月_久久欧美精品_成人超碰_国产久_www.pixiv.moe

以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.022-oo.cn/bbs/index.asp)
--  Microsoft.NET Framework  (http://www.022-oo.cn/bbs/list.asp?boardid=68)
----  Microsoft .NET Framework 2.0對(duì)文件傳輸協(xié)議(FTP)操作總結(jié)1  (http://www.022-oo.cn/bbs/dispbbs.asp?boardid=68&id=2546)

--  作者:wangxinxin
--  發(fā)布時(shí)間:2010-12-13 14:50:39
--  Microsoft .NET Framework 2.0對(duì)文件傳輸協(xié)議(FTP)操作總結(jié)1
FTP上傳,下載,新建,刪除,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)(例如:異步上傳,異步下載等其他操作)

Microsoft .NET Framework 2.0新增加了3個(gè)類(lèi)使我們很方便的對(duì)文件傳輸協(xié)議(FTP)服務(wù)器進(jìn)行操作
FtpWebRequest類(lèi):實(shí)現(xiàn)文件傳輸協(xié)議(FTP)客戶(hù)端
public sealed class FtpWebRequest : WebRequest

FtpWebResponse類(lèi):封裝文件傳輸協(xié)議(FTP)服務(wù)器對(duì)請(qǐng)求的響應(yīng)
public class FtpWebResponse : WebResponse, IDisposable

WebRequestMethods.Ftp類(lèi):表示可與FTP請(qǐng)求一起使用的FTP協(xié)議方法的類(lèi)型,無(wú)法繼承此類(lèi)
public static class Ftp

類(lèi)關(guān)系圖

附件: FtpWebResponse_class.jpg


操作ftp的一般步驟我總結(jié)如下:
第一步:WebRequest.Create方法,獲得FtpWebRequest的實(shí)例
第二步:利用WebRequestMethods.Ftp設(shè)置FtpWebRequest的Method屬性,指定使用的FTP協(xié)議方法的類(lèi)型
第三步:設(shè)置FtpWebRequest的Credentials屬性,指定用戶(hù)名和密碼
第四步:發(fā)出請(qǐng)求
第五步:接收響應(yīng)數(shù)據(jù)流(有些ftp操作可能沒(méi)這一步,例如給文件夾改名)
第六步:關(guān)閉流



下面從幾段代碼來(lái)分別展示ftp的不同操作:
1.文件夾和文件信息
關(guān)鍵知識(shí)說(shuō)明:
a.FtpWebRequest類(lèi)沒(méi)有公開(kāi)的構(gòu)造函數(shù),我們通過(guò)WebRequest.Create方法,獲得FtpWebRequest的實(shí)例
b.通過(guò)WebRequestMethods.Ftp.ListDirectoryDetails(詳細(xì)列表)或者WebRequestMethods.Ftp.ListDirectory(簡(jiǎn)短列表)獲取FTP服務(wù)器上的文件列表
c.請(qǐng)求返回的數(shù)據(jù)在GetResponseStream方法返回的流中
d.字符編碼請(qǐng)用System.Text.Encoding.Default,要不中文名會(huì)亂碼
e.FtpWebRequest.Credentials屬性設(shè)置登陸用戶(hù)名和密碼
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í)例代碼:
獲取ftp://218.16.229.120上的文件信息
  1. Uri uri = new Uri ( "ftp://218.16.229.120" );

  2. FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri );

  3. listRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
  4. //listRequest.Method = WebRequestMethods.Ftp.ListDirectory;

  5. string ftpUser = "";
  6. string ftpPassWord = "";
  7. listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord );

  8. FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( );
  9. Stream responseStream = listResponse.GetResponseStream ( );
  10. StreamReader readStream = new StreamReader ( responseStream , System.Text.Encoding.Default );

  11. if ( readStream != null )
  12. {
  13.     MessageBox.Show ( readStream.ReadToEnd ( )  );
  14. }

  15. MessageBox.Show ( string.Format ( "狀態(tài): {0},{1}" ,listResponse.StatusCode,  listResponse.StatusDescription ) );

  16. listResponse.Close ( );
  17. responseStream.Close ( );
  18. readStream.Close ( );
復(fù)制代碼
通過(guò)WebRequestMethods.Ftp.ListDirectoryDetails(詳細(xì)列表)或者WebRequestMethods.Ftp.ListDirectory(簡(jiǎn)短列表)返回的結(jié)果是不一樣的.請(qǐng)看圖
附件: FtpWebResponse_msg.jpg

利用WebRequestMethods.Ftp.ListDirectoryDetails,readStream.ReadToEnd ( )返回的字符串比較復(fù)雜(不同類(lèi)型的Ftp會(huì)有不同返回形式的返回結(jié)果),要把里面的文件夾和文件區(qū)分列出來(lái)比較繁瑣,代碼比較多,所以我沒(méi)寫(xiě)出來(lái),感興趣的朋友可以留言,我可以郵件發(fā)送.



2.取ftp登陸身份驗(yàn)證完成后的歡迎信息
關(guān)鍵知識(shí)說(shuō)明:
a.FtpWebResponse.WelcomeMessage屬性獲取身份驗(yàn)證完成時(shí)FTP服務(wù)器發(fā)送的消息

實(shí)例代碼:
獲取ftp://218.16.229.120登陸身份驗(yàn)證完成后的歡迎信息
  1. Uri uri = new Uri ( "ftp://218.16.229.120" );

  2. FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri );

  3. listRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;

  4. string ftpUser = "";
  5. string ftpPassWord = "";
  6. listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord );

  7. FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( );

  8. MessageBox.Show ( listResponse.WelcomeMessage );
復(fù)制代碼
附加說(shuō)明:要是FTP服務(wù)器的歡迎信息帶有中文,運(yùn)行這段代碼時(shí)可能會(huì)發(fā)生異常(基礎(chǔ)連接已經(jīng)關(guān)閉: 服務(wù)器提交了協(xié)議).
解決辦法:打補(bǔ)丁Microsoft .NET Framework 2.0 Service Pack 1



3.重命名目錄
關(guān)鍵知識(shí)說(shuō)明:
a.WebRequestMethods.Ftp.Rename表示重命名目錄的FTP協(xié)議方法
b.FtpWebRequest.RenameTo屬性重命名的新名稱(chēng)

實(shí)例代碼:
ftp://218.16.229.120/上的a目錄重命名為av
  1. Uri uri = new Uri ( "ftp://218.16.229.120/a" );

  2. FtpWebRequest listRequest = ( FtpWebRequest ) WebRequest.Create ( uri );

  3. listRequest.Method = WebRequestMethods.Ftp.Rename;

  4. string ftpUser = "";
  5. string ftpPassWord = "";
  6. listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord );

  7. listRequest.RenameTo = "av";

  8. FtpWebResponse listResponse = ( FtpWebResponse ) listRequest.GetResponse ( );

  9. MessageBox.Show ( listResponse.StatusDescription );

主站蜘蛛池模板: 四虎影在线永久免费四虎地址8848aa | 日本久久久久久 | 日日夜操 | 天天操天天摸天天舔 | 国产精品俺来也在线观看 | 国产成人久久 | 婷婷色爱区综合五月激情韩国 | 精品欧美乱码久久久久久 | 九一传媒在线观看 | 99在线精品视频 | 成年人看的羞羞网站 | 黄色一级在线视频 | 日本高清中文字幕一区二区三区 | 91在线网站 | 日本不卡在线一区二区三区视频 | 成年黄网站在线观看免费 | 日产乱码卡1卡2卡三免费 | 欧美福利 | 亚洲阿v天堂2021在线观看 | 久久精品中文 | 特级丰满少妇一级aaaa爱毛片 | 国产福利高清在线视频 | 亚洲欧洲精品视频在线观看 | bt日韩| 日韩在线免费视频 | 99这里只有精品视频 | 亚洲娇小性xxxx色 | 一区二区福利视频 | 欧美成人影院在线观看三级 | 久草福利| 波多野结衣中文字幕视频 | 国产精品无码永久免费888 | 久久人人爽人人爽人人片av不 | 91精品视频在线播放 | 国产精品成人免费一区久久羞羞 | 日日噜噜夜夜狠狠视频buoke | 免费看黄色大片 | 国产麻豆剧传媒精品好看的片 | 国产视频aaa | 欧美日韩亚洲一区二区三区在线观看 | 天天在线综合网 |