• <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 閱讀(395) 評論(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         //創(chuàng)建私有成員
             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                  * 創(chuàng)建FTP對象
             54                  */
             55 
             56                 //創(chuàng)建對服務器的請求
             57                 FtpWebRequest request = (FtpWebRequest)WebRequest.Create( this.textBox_Server.Text );
             58                 //創(chuàng)建網絡驗證
             59                 request.Credentials = new NetworkCredential( this.textBox_UserName.Text, this.textBox_Password.Text );
             60                 //設置請求方法
             61                 request.Method = WebRequestMethods.Ftp.ListDirectory;
             62 
             63 
             64                 /*
             65                  * 發(fā)送請求到服務器
             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 }
            成人午夜精品久久久久久久小说 | 久久精品国产乱子伦| 精品久久久久一区二区三区| 久久―日本道色综合久久| 97精品国产97久久久久久免费| 99久久国产亚洲高清观看2024 | 亚洲一区中文字幕久久| 久久99精品久久久久久噜噜| 久久久久久伊人高潮影院| 久久精品中文无码资源站| 精品无码人妻久久久久久| 久久久久久国产a免费观看黄色大片| 伊人久久大香线蕉AV一区二区| 亚洲av伊人久久综合密臀性色| 久久国产精品久久| 久久久久99这里有精品10| 精品999久久久久久中文字幕| 久久久精品久久久久久 | 亚洲av伊人久久综合密臀性色 | 久久久久国产一区二区 | 久久精品国产精品亚洲艾草网美妙| 女人高潮久久久叫人喷水| 99久久中文字幕| 中文字幕久久波多野结衣av| 久久精品国产只有精品66| 精品国产乱码久久久久久1区2区| 亚洲午夜无码久久久久小说| 青青青国产成人久久111网站| 亚洲国产精品久久久天堂| 精品久久久久久无码不卡| 久久久久国产日韩精品网站| 国产激情久久久久影院小草| 国产精品一久久香蕉国产线看| 影音先锋女人AV鲁色资源网久久| 天天影视色香欲综合久久| 久久久久亚洲AV无码专区网站| 久久精品国产精品亚洲精品| 久久99中文字幕久久| 国产亚洲婷婷香蕉久久精品| 久久福利青草精品资源站免费| 久久Av无码精品人妻系列|