• 大小: 109KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C#
  • 标签: ftp  

资源简介

基于C#的FTP客户端的实现(网络编程课设),基本实现了FTP客户端的功能,可以当课程设计用。

资源截图

代码片段和文件信息

using System;
using System.IO;
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.Net;

namespace FTPclient
{
    public partial class Form1 : Form
    {
        string ftpServerIP;//服务器IP
        string ftpUserID;//用户名
        string ftpPwd;//密码
        
        static  string file = null;
        FtpWebRequest reqFTP;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender EventArgs e)
        {
            btn_reconnect.Enabled = false;
            txt_serverIp.Text = ftpServerIP;
            txt_username.Text = ftpUserID;
            txt_pwd.Text = ftpPwd;
            this.Text += ftpServerIP;

            btn_connect.Enabled = true;
            btn_stepback.Enabled = false;
        }
        private void Connect(String path)//连接ftp

        {
            // 根据uri创建FtpWebRequest对象
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(path));
            // 指定数据传输类型
            reqFTP.UseBinary = true;
            // ftp用户名和密码
            reqFTP.Credentials = new NetworkCredential(ftpUserID ftpPwd);
        }

        //上传
        private void Upload(string filename)
        {
            FileInfo fileInf = new FileInfo(filename);
            string uri = “ftp://“+ftpServerIP+“/“+fileInf.Name;
            if (file != null)
            {
                uri = “ftp://“ + ftpServerIP + “/“ + file+fileInf.Name;
            }

            //连接FTP
            Connect(uri);

            //默认情况下KeepAlive是true 
            reqFTP.KeepAlive = false;

            //指定要执行的命令
            reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
           
            //指定要传输的数据类型
            reqFTP.UseBinary = true;
            
            //指定上传文件的长度
            reqFTP.ContentLength = fileInf.Length;

            //缓冲区大小设置成KB
            int buffLength = 2048;
            byte[] buff = new byte[buffLength];
            int contentLen;

            //打开一个文件流读入上传的文件
            FileStream fs = fileInf.OpenRead();
            try
            {
                //吧要上传的文件写入流
                Stream strm = reqFTP.GetRequestStream();
                
                //从文件流中读入数据,一次读2LB大小的数据
                contentLen = fs.Read(buff0buff.Length);
                while(contentLen!=0)
                {
                    //把文件的内容从文件流写到FTP上传流中
                    strm.Write(buff0contentLen);
                    contentLen = fs.Read(buff0buffLength);
                }
                //关闭文件流和请求流
                strm.Close();
                fs.Close();
                detailListfile();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message“上传出错“);
            }
            finally
            {
 
            

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-10-07 10:22  MyFtpClient\
     目录           0  2015-10-07 10:23  MyFtpClient\FTPclient\
     目录           0  2015-10-07 10:23  MyFtpClient\FTPclient\Backup\
     目录           0  2015-10-07 10:23  MyFtpClient\FTPclient\Backup\FTPclient\
     文件        3764  2008-12-13 11:26  MyFtpClient\FTPclient\Backup\FTPclient\FTPclient.csproj
     文件       21822  2008-12-18 08:37  MyFtpClient\FTPclient\Backup\FTPclient\Form1.Designer.cs
     文件       18462  2008-12-18 12:45  MyFtpClient\FTPclient\Backup\FTPclient\Form1.cs
     文件        5814  2008-12-18 08:37  MyFtpClient\FTPclient\Backup\FTPclient\Form1.resx
     文件         490  2008-12-13 10:51  MyFtpClient\FTPclient\Backup\FTPclient\Program.cs
     目录           0  2015-10-07 10:23  MyFtpClient\FTPclient\Backup\FTPclient\Properties\
     文件        1360  2008-12-13 10:51  MyFtpClient\FTPclient\Backup\FTPclient\Properties\AssemblyInfo.cs
     文件        2868  2008-12-13 10:51  MyFtpClient\FTPclient\Backup\FTPclient\Properties\Resources.Designer.cs
     文件        5612  2008-12-13 10:51  MyFtpClient\FTPclient\Backup\FTPclient\Properties\Resources.resx
     文件        1094  2008-12-13 10:51  MyFtpClient\FTPclient\Backup\FTPclient\Properties\Settings.Designer.cs
     文件         249  2008-12-13 10:51  MyFtpClient\FTPclient\Backup\FTPclient\Properties\Settings.settings
     文件         917  2008-12-13 10:51  MyFtpClient\FTPclient\Backup\FTPclient.sln
     文件       14848  2008-12-18 16:09  MyFtpClient\FTPclient\Backup\FTPclient.v12.suo
     目录           0  2015-10-17 08:52  MyFtpClient\FTPclient\FTPclient\
     文件        3954  2015-10-07 23:40  MyFtpClient\FTPclient\FTPclient\FTPclient.csproj
     文件       23080  2015-10-07 23:40  MyFtpClient\FTPclient\FTPclient\Form1.Designer.cs
     文件       20858  2015-10-17 08:52  MyFtpClient\FTPclient\FTPclient\Form1.cs
     文件        5814  2015-10-07 23:08  MyFtpClient\FTPclient\FTPclient\Form1.resx
     文件         490  2008-12-13 10:51  MyFtpClient\FTPclient\FTPclient\Program.cs
     目录           0  2015-10-07 10:22  MyFtpClient\FTPclient\FTPclient\Properties\
     文件        1360  2008-12-13 10:51  MyFtpClient\FTPclient\FTPclient\Properties\AssemblyInfo.cs
     文件        2858  2015-10-07 10:23  MyFtpClient\FTPclient\FTPclient\Properties\Resources.Designer.cs
     文件        5612  2008-12-13 10:51  MyFtpClient\FTPclient\FTPclient\Properties\Resources.resx
     文件        1109  2015-10-07 10:23  MyFtpClient\FTPclient\FTPclient\Properties\Settings.Designer.cs
     文件         249  2008-12-13 10:51  MyFtpClient\FTPclient\FTPclient\Properties\Settings.settings
     目录           0  2008-12-13 10:51  MyFtpClient\FTPclient\FTPclient\bin\
     目录           0  2015-10-17 08:52  MyFtpClient\FTPclient\FTPclient\bin\Debug\
............此处省略22个文件信息

评论

共有 条评论