使用VS2005自己的类库实现FTP下载

以前上传音乐下载文件等使用的FTP都是到SourceForge上去找的,现在好了,VS2005对WebRequest进行了扩展,除了以前使用的Http类以外还多了FtpWebRequest。现在我们就可以不用第三方的FTP类库了。

FtpWebRequest实现下载文件的方法如下:

Stream stream = null;
        StreamReader reader = null;
        try
        {
            FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftp://202.115.22.138/test.txt);
            ftpRequest.Credentials = new NetworkCredential("sa", "studyzy");
            ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
            FtpWebResponse ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
            stream = ftpResponse.GetResponseStream();
            reader = new StreamReader(stream, Encoding.Default);
            string txt = reader.ReadToEnd();
            return txt;
        }
        catch
        {
            return "读取FTP文件失败";
        }
        finally
        {
            if (reader != null) { reader.Close(); }
            if (stream != null) { stream.Close(); }
        }

以上代码只是将FTP中的文本文件读取到内存中,要保存到硬盘只需要使用StreamWriter  。同样的方法可以实现FTP的其他功能。

10701.aspx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
例子: 调用方法,目前只用上传功能:     定义全局私有变量:  private clsFTP cf;    按钮事件:         private void btn_upFile_Click(object sender, EventArgs e)         {             lb_upload.Text = "正在上传文件,请等待...";              cf = new clsFTP(new Uri("http://www.cnblogs.com/zhangjun1130/admin/ftp://192.168.43.55/"), "temp", "temp");             string localFile = Application.StartupPath.ToString() + "http://www.cnblogs.com/zhangjun1130/admin/file://output//zt.rar";              cf.UploadProgressChanged+=new clsFTP.De_UploadProgressChanged(cf_UploadProgressChanged);              cf.UploadFileCompleted+=new clsFTP.De_UploadFileCompleted(cf_UploadFileCompleted);              cf.UploadFileAsync(localFile, true);  //调用异步传输,若有文件存在则覆盖。         }    事件捆绑,反映上传进度:         public void cf_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e)         {             this.pgrBarFileUpload.Maximum = (int)e.TotalBytesToSend;             this.pgrBarFileUpload.Value =(int) e.BytesSent;             lb_upload.Text = string.Format("文件总大小:{0}k,已经上传: {1}k。", e.TotalBytesToSend/1024,e.BytesSent/1024);         }         public void cf_UploadFileCompleted(object sender, UploadFileCompletedEventArgs e)         {                         try             {                 lb_upload.Text = "无法连接到服务器,或者用户登陆失败!";                 lb_error.Text =e.Error.Message.ToString();             }             catch             {                 lb_upload.Text = "文件上传成功!";                 lb_error.Text = "";             }         } 点击连接:http:##www.cnblogs.com/zhangjun1130/archive/2010/03/24/1693932.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值