您的位置:首页 > 编程语言 > C#

C#实现的简单ftp客户端

2010-08-07 17:48 447 查看
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Net;

namespace ftpApp

{

    public partial class Form1 : Form

    {

        FtpWebRequest request;

        FtpWebResponse response;

        string fileName="";

        StreamReader reader;

        public Form1()

        {

            InitializeComponent();

        }

        private void okBtn_Click(object sender, EventArgs e)

        {

            this.Close();

        }

        private void Form1_Load(object sender, EventArgs e)

        {

        }

        private void conBtn_Click(object sender, EventArgs e)

        {

            listBox1.Items.Clear();

            request=(FtpWebRequest)WebRequest.Create("ftp://192.168.4.152/");

            request.Method = WebRequestMethods.Ftp.ListDirectory;

            request.Credentials = new NetworkCredential("ftpuser","ftpuser");

            response = (FtpWebResponse)request.GetResponse();

            reader = new StreamReader(response.GetResponseStream());

            string filelist=reader.ReadToEnd();

            string[] list = filelist.Split(new char[]{'/r','/n'},StringSplitOptions.RemoveEmptyEntries);

            foreach (string i in list)

            {

                listBox1.Items.Add(i);

            }

            reader.Close();

            response.Close();

        }

        private void downBtn_Click(object sender, EventArgs e)

        {

            if (listBox1.SelectedItem == null)

            {

                MessageBox.Show("请选择一个文件");

                return;

            }

            fileName = (string)listBox1.SelectedItem.ToString();

            string url = "D:/" + fileName;

            if (File.Exists(url))

            {

                if (MessageBox.Show("本地已经存在" + fileName + ",点击确定覆盖。", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)

                {

                    return;

                }

            }

            request = (FtpWebRequest)WebRequest.Create("ftp://192.168.4.152/"+fileName);

            request.Method = WebRequestMethods.Ftp.DownloadFile;

            request.Credentials = new NetworkCredential("ftpuser", "ftpuser");

            response = (FtpWebResponse)request.GetResponse();

            Stream responseStream = response.GetResponseStream();

            reader = new StreamReader(responseStream);

            StreamWriter writer=new StreamWriter(url);

            writer.Write(reader.ReadToEnd());

            writer.Close();

            reader.Close();

            MessageBox.Show(fileName + "下载完毕.");

            //string[] list = fileName.Split('/n');

            //string url = "D://" + fileName;

            //writer = new StreamWriter(url);

            //writer.Write(reader.ReadToEnd());

        }

        private void upBtn_Click(object sender, EventArgs e)

        {

            openFileDialog1.FileName = "";

            if (openFileDialog1.ShowDialog() == DialogResult.Cancel)

            {

                return;

            }

            else

            {

                fileName = openFileDialog1.SafeFileName;

            }

            if (listBox1.Items.Contains(fileName) == true)

            {

                if (MessageBox.Show("服务器上已经存在" + fileName + ",点击确定覆盖", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)

                {

                    return;

                }

            }

            request = (FtpWebRequest)WebRequest.Create("ftp://192.168.4.152/" + fileName);

            request.Method = WebRequestMethods.Ftp.UploadFile;

            request.Credentials = new NetworkCredential("ftpuser", "ftpuser");

            reader = new StreamReader(fileName);

            byte[] fileContents = Encoding.UTF8.GetBytes(reader.ReadToEnd());

            reader.Close();

            request.ContentLength = fileContents.Length;

            Stream requestStream = request.GetRequestStream();

            requestStream.Write(fileContents,0,fileContents.Length);

            requestStream.Close();

            listBox1.Items.Clear();

            request = (FtpWebRequest)WebRequest.Create("ftp://192.168.4.152/");

            request.Method = WebRequestMethods.Ftp.ListDirectory;

            request.Credentials = new NetworkCredential("ftpuser", "ftpuser");

            response = (FtpWebResponse)request.GetResponse();

            reader = new StreamReader(response.GetResponseStream());

            string filelist = reader.ReadToEnd();

            string[] list = filelist.Split(new char[] { '/r', '/n' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (string i in list)

            {

                listBox1.Items.Add(i);

            }

            reader.Close();

            MessageBox.Show(fileName+"已经上传至服务器。");

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# string object list stream url