当前位置: 网学 > 设计下载 > ASP.NET类别 > 正文

C#编写的FTP客户端程序

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 佚名 来源: 网络 发布时间: 13/05/17

本文主要为广大网友提供“C#编写的FTP客户端程序”,希望对需要C#编写的FTP客户端程序网友有所帮助,学习一下!

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn

 

4.3.3    文件传输的程序实现
先进行判断是否与主机连接成功,获取要下载的文件名、保存到本机的路径、保存到本机时的文件名。在进行设置传输模式:二进制Binary传输或ACSII传输,在创建数据连接发送PASV被动模式进行传输然后对应答命令进行判断。最后进行数据传输以流方式传输。其主要代码程序如下:
        public void Get(string strRemoteFileName,string strFolder,string strLocalFileName)
        {
            if(!bConnected)
            {
                Connect();
            }
            SetTransferType(TransferType.Binary);
            if (strLocalFileName.Equals(""))
            {
                strLocalFileName = strRemoteFileName;
            }
            if(!File.Exists(strLocalFileName))
            {
                Stream st = File.Create(strLocalFileName);
                st.Close();
            }
            FileStream output = new
                FileStream(strFolder + "\\" + strLocalFileName,FileMode.Create);
            Socket socketData = CreateDataSocket();
            SendCommand("RETR " + strRemoteFileName);
            if(!(iReplyCode == 150 || iReplyCode == 125
                || iReplyCode == 226 || iReplyCode == 250))
            {
                throw new IOException(strReply.Substring(4));
            }
            while(true)
            {
                int iBytes = socketData.Receive(buffer, buffer.Length, 0);
                output.Write(buffer,0,iBytes);
                if(iBytes <= 0)
                {
                    break;
                }
            }
            output.Close();
            if (socketData.Connected)
            {
                socketData.Close();
            }
            if(!(iReplyCode == 226 || iReplyCode == 250))
            {
                ReadReply();
                if(!(iReplyCode == 226 || iReplyCode == 250))
                {
                    throw new IOException(strReply.Substring(4));
                }
            }
        }
4.3.4    辅助功能的程序实现
当需要返回上级目录时,先检查当前目录字符串是否小于3,如果小于了3则表示已经是跟目录了,不能在返回上级目录了。其他情况直接用Substring来去掉最后一个目录。具体办法是每次取字符串从0到最后一个“\\”。然后把该字符串赋值给ComboBox。程序代码如下:其主要代码程序如下:
        private void but_Fa_Click(object sender, System.EventArgs e)
        {//返回上级目录
            string path=this.comboBox1.Text;
            string newpath;
            if(path.EndsWith("\\"))
            {
                if(path.Length<=3)
                {
                    MessageBox.Show("根目录了!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
                    return;
                }
                newpath=path.Substring(0,path.LastIndexOf("\\"));
                this.comboBox1.Text=newpath.Substring(0,newpath.LastIndexOf("\\"));
            }
            else
            {
                if(path.LastIndexOf("\\")!=2)
                {
                    newpath=path.Substring(0,path.LastIndexOf("\\"));
                    this.comboBox1.Text=newpath;
                }
                else
                {
                    newpath=path.Substring(0,path.LastIndexOf("\\")+1);
                    this.comboBox1.Text=newpath;
                    return;
                }
            }
        }
当在第一次登录主机时,为方便以后在次登录该主机则需要保存其登录信息。先把所有的输入框中的值赋给有代表意思的字符串。如果主机别名为空则主机别名与主机地址相同。
然后通过IniWriteValue方法来写入mfftp.ini文件中,其主要代码程序如下:
        private void but_Ok_Click(object sender, System.EventArgs e)
        {//添加登录主机信息
            string hostname=this.text_Name.Text.Trim();
            string hostip=this.text_SerIp.Text.Trim();
            string loginname=this.loginName.Text.Trim();
            string loginpwd=this.login_Pwd.Text.Trim();
            string mydir=this.text_add.Text.Trim();
            if(hostname=="")
            {
                hostname=hostip;
            }
            IniFile inf=new IniFile();
            inf.path=".\\mfftp.ini";   
            int i=Convert.ToInt32(inf.IniReadValue("MFFTP_Options","HostNum"));
            //string serAdd=inf.IniReadValue("MFFTP_OptionsHost0","HostIp");
            string ServerName= "MFFTP_OptionsHost"+i;
            inf.IniWriteValue(ServerName,"HostName",hostname);
            inf.IniWriteValue(ServerName,"HostIp",hostip);
            inf.IniWriteValue(ServerName,"LoginName",loginname);
            inf.IniWriteValue(ServerName,"LoginPwd",loginpwd);
            inf.IniWriteValue(ServerName,"MyDir",mydir);
            i=i+1;
            inf.IniWriteValue("MFFTP_Options","HostNum",i.ToString());
            this.standm.sername(hostname);
            this.Close();
        }  
5             软件测试
5.1 测试前分析
FTP软件测试,从详细设计来看,分4部分进行测试:首先必须连接到某网络,在网络连接成功后,进行第一步测试连接测试,在输入IP地址和登录名和密码后能成功连接到主机;第二步对文件操作测试,能新建文件、删除文件等操作;第三步在于服务器连接成功后测试上传和下载操作,第四步检测文件在选择目录后能显示根据路径来显示此路径下所有文件和信息保存入INI文件。
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT

本文选自计算机毕业设计http://myeducs.cn
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

  • 上一篇资讯: VB医院信息管理系统
  • 下一篇资讯: 基于C#聊天软件的设计
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号