文件上传、带进度(FTP类)

     实现效果:

          

      功能描述:

  1. 建立FTP链接
  2. 支持代理
  3. 多种重载的同步上传文件
  4. 多种重载的异步上传文件
  5. 多种重载的同步下载文件
  6. 多种重载的异步下载文件
  7. 上传文件的进度百分比
  8. 下载文件的进度白分比
  9. 有区分的列出目录或者文件的信息(考虑到MS DOS显示格式和UNIX格式)
  10. 目录或文件存在的判断
  11. 删除文件
  12. 重命名文件、目录
  13. 在FTP服务器上面拷贝、移动文件(许多人可能在苦苦寻找这个功能)
  14. 建立、删除目录
  15. 目录切换操作(很新颖哦 J)

 点击下载代码

    调用方法,目前只用上传功能:
    定义全局私有变量:

 private clsFTP cf;

   按钮事件:

        private void btn_upFile_Click(object sender, EventArgs e)
        {
            lb_upload.Text = "正在上传文件,请等待...";
             cf = new clsFTP(new Uri("ftp://192.168.43.55"), "temp", "temp");
            string localFile = Application.StartupPath.ToString() + "\\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 = "";
            }
        }

Permalink | Comments (4) | Hits: 997 | Time: 10:55:56
.vshost.exe,.pdb是干嘛用的?
C#抓屏(截屏)
All Comments
#1 - w888q - 2008-5-28 17:56:58
您好楼主。能把您这个demo的代码发给我吗?
万分感谢!
w888q#126.com
#2 - w888q - 2008-5-28 17:58:17
我也看了这个类,无奈,winform 下使用不了进度条。看您的进度条是能使用的。谢谢谢谢!
#3 - CK - 2008-5-30 13:56:09

您好楼主。能把您这个demo的代码发给我吗?
万分感谢!
#4 - CK - 2008-5-30 13:57:20
可以的话,请发给下以邮箱,谢了~

jgdeng126@sina.com


Post Your Comment
^ ^

Top