• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            我希望你是我獨家記憶

            一段永遠封存的記憶,隨風而去
            posts - 263, comments - 31, trackbacks - 0, articles - 3
               :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

            FTPClient

            Posted on 2009-07-15 10:59 Hero 閱讀(390) 評論(0)  編輯 收藏 引用 所屬分類: C#積累
              1 using System;
              2 using System.Collections.Generic;
              3 using System.ComponentModel;
              4 using System.Data;
              5 using System.Drawing;
              6 using System.Text;
              7 using System.Windows.Forms;
              8 using System.IO;
              9 using System.Net;
             10 
             11 namespace FtpClient
             12 {
             13     public partial class FtpClient : Form
             14     {
             15         //創建私有成員
             16         private string serverDirectory;
             17 
             18         public FtpClient()
             19         {
             20             InitializeComponent();
             21         }
             22 
             23         //填充listbox
             24         private void FillDirectoryList( Stream stream )
             25         {
             26             StreamReader reader = new StreamReader( stream );
             27             string content = reader.ReadToEnd();
             28             string[] files = content.Split( '\n' );
             29 
             30             //設定數據源
             31             listBox_ListFiles.DataSource = files;
             32             reader.Close();
             33         }
             34 
             35         private void FtpClient_Load( object sender, EventArgs e )
             36         {
             37 
             38         }
             39 
             40         private void button_Open_Click( object sender, EventArgs e )
             41         {
             42             Cursor currentCursor = this.Cursor;
             43             FtpWebResponse response = null;
             44             Stream stream = null;
             45 
             46             try
             47             {
             48                 //暫存光標位置
             49                 this.Cursor = Cursors.WaitCursor;
             50 
             51                 //////////////////////////////////////////////////////////////////////////
             52                 /*
             53                  * 創建FTP對象
             54                  */
             55 
             56                 //創建對服務器的請求
             57                 FtpWebRequest request = (FtpWebRequest)WebRequest.Create( this.textBox_Server.Text );
             58                 //創建網絡驗證
             59                 request.Credentials = new NetworkCredential( this.textBox_UserName.Text, this.textBox_Password.Text );
             60                 //設置請求方法
             61                 request.Method = WebRequestMethods.Ftp.ListDirectory;
             62 
             63 
             64                 /*
             65                  * 發送請求到服務器
             66                  */
             67                 response = (FtpWebResponse)request.GetResponse();
             68 
             69                 /*
             70                  * 讀取響應并且填充Listbox
             71                  */
             72                 stream = response.GetResponseStream();
             73                 FillDirectoryList( stream );
             74 
             75 
             76 
             77                 serverDirectory = null;
             78                 button_GetFile.Enabled = false;
             79                 button_OpenDirectory.Enabled = false;
             80             }
             81             catch (System.Exception ex)
             82             {
             83                 MessageBox.Show( ex.Message, "Error FTP Client", MessageBoxButtons.OK, MessageBoxIcon.Error );
             84             }
             85             finally
             86             {
             87                 if ( response != null ) response.Close();
             88                 if ( stream != null ) stream.Close();
             89 
             90                 this.Cursor = currentCursor;
             91             }
             92         }
             93 
             94         private void button_OpenDirectory_Click( object sender, EventArgs e )
             95         {
             96             FtpWebResponse response = null;
             97             Stream stream = null;
             98 
             99             try
            100             {
            101                 //獲得子目錄
            102                 string subDirectory = this.listBox_ListFiles.SelectedValue.ToString().Trim();
            103                 serverDirectory += "/" + subDirectory;
            104 
            105                 Uri baseUri = new Uri( this.textBox_Server.Text );
            106                 Uri uri = new Uri( baseUri, serverDirectory );
            107 
            108                 //WebRequest是抽象類,不能直接使用
            109                 FtpWebRequest request = (FtpWebRequest)WebRequest.Create( uri );
            110                 request.Credentials = new NetworkCredential( this.textBox_UserName.Text, this.textBox_Password.Text );
            111                 request.Method = WebRequestMethods.Ftp.ListDirectory;
            112 
            113                 response = (FtpWebResponse)request.GetResponse();
            114                 stream = response.GetResponseStream();
            115                 this.FillDirectoryList( stream );
            116             }
            117             catch (System.Exception ex)
            118             {
            119                 MessageBox.Show( ex.Message, "Error FTP Client", MessageBoxButtons.OK, MessageBoxIcon.Error );
            120             }
            121             finally
            122             {
            123                 if ( response != null ) response.Close();
            124                 if ( stream != null ) stream.Close();
            125             }
            126         }
            127 
            128         private void button_GetFile_Click( object sender, EventArgs e )
            129         {
            130             FtpWebResponse response = null;
            131             Stream instream = null;
            132             Stream outstream = null;
            133 
            134             try
            135             {
            136                 Uri baseuri = new Uri( this.textBox_Server.Text );
            137 
            138                 string filename = this.listBox_ListFiles.SelectedValue.ToString().Trim();
            139                 string fullFileName = serverDirectory + "/" + filename;
            140 
            141                 Uri uri = new Uri( baseuri, fullFileName );
            142 
            143                 FtpWebRequest request = (FtpWebRequest)WebRequest.Create( uri );
            144                 request.Credentials = new NetworkCredential( this.textBox_UserName.Text, this.textBox_Password.Text );
            145                 request.Method = WebRequestMethods.Ftp.ListDirectory;
            146 
            147                 response = (FtpWebResponse)request.GetResponse();
            148                 //獲得文件流
            149                 instream = response.GetResponseStream();
            150                 this.saveFileDialog_location.FileName = filename;
            151 
            152                 if ( saveFileDialog_location.ShowDialog() == DialogResult.OK )
            153                 {
            154                     outstream = File.OpenWrite( saveFileDialog_location.FileName );
            155                     byte[] buffer = new byte[4096];
            156                     int size = 0;
            157                     while( (size=instream.Read(buffer, 04096 )) > 0 )
            158                     {
            159                         outstream.Write( buffer, 0, size );
            160                     }
            161                 }
            162             }
            163             catch (System.Exception ex)
            164             {
            165                 MessageBox.Show( ex.Message );
            166             }
            167             finally
            168             {
            169                 if ( instream != null ) instream.Close();
            170                 if ( outstream != null ) outstream.Close();
            171                 if ( response != null ) response.Close();
            172             }
            173         }
            174 
            175         private void listBox_ListFiles_SelectedIndexChanged( object sender, EventArgs e )
            176         {
            177             this.button_GetFile.Enabled = true;
            178             this.button_OpenDirectory.Enabled = true;
            179         }
            180     }
            181 }
            手机看片久久高清国产日韩| 精品久久久久久无码人妻热| 亚洲中文久久精品无码| 熟妇人妻久久中文字幕| 久久久国产精品福利免费| 久久久久99精品成人片| 亚洲狠狠婷婷综合久久蜜芽| 免费国产99久久久香蕉| 一本色道久久综合狠狠躁| 国产精品久久久久影视不卡| 久久天天躁狠狠躁夜夜2020| 精品久久久久久无码专区| 亚洲精品视频久久久| 久久91精品国产91久久麻豆| 久久婷婷是五月综合色狠狠| 久久99热精品| 丰满少妇人妻久久久久久| 久久无码国产| 久久99精品久久久久久齐齐| 亚洲国产精品无码久久| 伊人久久大香线蕉精品不卡| 国产精品九九久久免费视频 | 欧美精品一区二区精品久久| 伊人久久大香线蕉精品不卡| 国产综合精品久久亚洲| 久久超乳爆乳中文字幕| 7777久久久国产精品消防器材| 午夜视频久久久久一区| 韩国三级中文字幕hd久久精品| 国产精品视频久久| 久久久久久久尹人综合网亚洲| 久久精品夜夜夜夜夜久久| 伊人久久综合精品无码AV专区| 色妞色综合久久夜夜| 久久亚洲欧洲国产综合| 欧美午夜A∨大片久久| 久久国产精品波多野结衣AV| 精品无码人妻久久久久久 | 亚洲精品高清一二区久久| 久久强奷乱码老熟女网站| 精品无码人妻久久久久久|