<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇開發語言培訓專區Microsoft.NET Framework → Microsoft .NET Framework 2.0對文件傳輸協議(FTP)操作總結1


      共有6915人關注過本帖樹形打印

    主題:Microsoft .NET Framework 2.0對文件傳輸協議(FTP)操作總結1

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    Microsoft .NET Framework 2.0對文件傳輸協議(FTP)操作總結1  發帖心情 Post By:2010-12-13 14:50:39

    FTP上傳,下載,新建,刪除,FTP間傳送文件等

    最近項目需要對FTP服務器進行操作,現把實現總結如下:
    打算分2篇總結:
    第1篇總結Ftp的一些常規的操作實現(例如:上傳,下載,新建,刪除,FTP間互傳文件等操作)
    第2篇總結Ftp的操作的一些其他實現(例如:異步上傳,異步下載等其他操作)

    Microsoft .NET Framework 2.0新增加了3個類使我們很方便的對文件傳輸協議(FTP)服務器進行操作
    FtpWebRequest類:實現文件傳輸協議(FTP)客戶端
    public sealed class FtpWebRequest : WebRequest

    FtpWebResponse類:封裝文件傳輸協議(FTP)服務器對請求的響應
    public class FtpWebResponse : WebResponse, IDisposable

    WebRequestMethods.Ftp類:表示可與FTP請求一起使用的FTP協議方法的類型,無法繼承此類
    public static class Ftp

    類關系圖

    附件: FtpWebResponse_class.jpg


    操作ftp的一般步驟我總結如下:
    第一步:WebRequest.Create方法,獲得FtpWebRequest的實例
    第二步:利用WebRequestMethods.Ftp設置FtpWebRequest的Method屬性,指定使用的FTP協議方法的類型
    第三步:設置FtpWebRequest的Credentials屬性,指定用戶名和密碼
    第四步:發出請求
    第五步:接收響應數據流(有些ftp操作可能沒這一步,例如給文件夾改名)
    第六步:關閉流



    下面從幾段代碼來分別展示ftp的不同操作:
    1.文件夾和文件信息
    關鍵知識說明:
    a.FtpWebRequest類沒有公開的構造函數,我們通過WebRequest.Create方法,獲得FtpWebRequest的實例
    b.通過WebRequestMethods.Ftp.ListDirectoryDetails(詳細列表)或者WebRequestMethods.Ftp.ListDirectory(簡短列表)獲取FTP服務器上的文件列表
    c.請求返回的數據在GetResponseStream方法返回的流中
    d.字符編碼請用System.Text.Encoding.Default,要不中文名會亂碼
    e.FtpWebRequest.Credentials屬性設置登陸用戶名和密碼
    f.FtpWebRequest.UseBinary屬性,true,指示服務器要傳輸的是二進制數據.false,指示數據為文本。默認值為true
    g.FtpWebRequest.EnableSsl屬性,如果控制和數據傳輸是加密的,則為true.否則為false.默認值為 false

    實例代碼:
    獲取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 ( "狀態: {0},{1}" ,listResponse.StatusCode,  listResponse.StatusDescription ) );

    16. listResponse.Close ( );
    17. responseStream.Close ( );
    18. readStream.Close ( );
    復制代碼
    通過WebRequestMethods.Ftp.ListDirectoryDetails(詳細列表)或者WebRequestMethods.Ftp.ListDirectory(簡短列表)返回的結果是不一樣的.請看圖
    附件: FtpWebResponse_msg.jpg

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



    2.取ftp登陸身份驗證完成后的歡迎信息
    關鍵知識說明:
    a.FtpWebResponse.WelcomeMessage屬性獲取身份驗證完成時FTP服務器發送的消息

    實例代碼:
    獲取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. string ftpUser = "";
    5. string ftpPassWord = "";
    6. listRequest.Credentials = new NetworkCredential ( ftpUser , ftpPassWord );

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

    8. MessageBox.Show ( listResponse.WelcomeMessage );
    復制代碼
    附加說明:要是FTP服務器的歡迎信息帶有中文,運行這段代碼時可能會發生異常(基礎連接已經關閉: 服務器提交了協議).
    解決辦法:打補丁Microsoft .NET Framework 2.0 Service Pack 1



    3.重命名目錄
    關鍵知識說明:
    a.WebRequestMethods.Ftp.Rename表示重命名目錄的FTP協議方法
    b.FtpWebRequest.RenameTo屬性重命名的新名稱

    實例代碼:
    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 );

    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    Microsoft .NET Framework 2.0對文件傳輸協議(FTP)操作總結1








    簽名
    主站蜘蛛池模板: 制服丝袜日韩欧美| 国内自产少妇自拍区免费| 亚洲成AV人片在线播放无码| 精品国精品自拍自在线| 国产福利一区视频| zoosk00lvideos性印度| 日本妇人成熟免费| 亚洲第一区se| 福利免费在线观看| 国产成人18黄网站麻豆| AV无码精品一区二区三区宅噜噜| 成年丰满熟妇午夜免费视频| 亚洲人成人网站在线观看| 波多野结衣和邻居老人| 国产SUV精品一区二区883| 黄色一级黄色片| 在线精品国产一区二区三区| 丹麦**一级毛片www| 日韩电影免费在线观看网站| 亚洲香蕉久久一区二区| 精品人妻少妇一区二区三区 | 奇米影视7777狠狠狠狠色| 久久婷婷人人澡人人喊人人爽| 欧美人与动人物姣配xxxx| 免费国产美女爽到喷出水来视频| 美女扒开内裤羞羞网站| 国产欧美视频高清va在线观看| WWW免费视频在线观看播放| 巨大欧美黑人xxxxbbbb| 久久精品一区二区三区四区| 校草被c呻吟双腿打开bl双性| 亚洲酒色1314狠狠做| 精品99在线观看| 国产主播福利精品一区二区| 高清国语自产拍免费视频| 国产精品美女久久久久AV福利| www亚洲欲色成人久久精品| 巨年少根与艳妇全文阅| 久久国产精品网| 日韩高清国产一区在线| 亚洲欧洲日产国码久在线观看|