实现效果:
          


功能描述:
建立FTP链接
支持代理
多种重载的同步上传文件
多种重载的异步上传文件
多种重载的同步下载文件
多种重载的异步下载文件
上传文件的进度百分比
下载文件的进度白分比
有区分的列出目录或者文件的信息(考虑到MS DOS显示格式和UNIX格式)
目录或文件存在的判断
删除文件
重命名文件、目录
在FTP服务器上面拷贝、移动文件(许多人可能在苦苦寻找这个功能)
建立、删除目录
目录切换操作(很新颖哦 J)
点击下载代码
    调用方法,目前只用上传功能:
    定义全局私有变量:
private clsFTP cf;
   按钮事件:
        private void btn_upFile_Click(object sender, EventArgs e)
        {
            lb_upload.Text = "正在上传文件,请等待...";
             cf = new clsFTP(new Uri("http://www.cnblogs.com/fmxyw/admin/ftp://192.168.43.55/"), "temp", "temp");
            string localFile = Application.StartupPath.ToString() + "http://www.cnblogs.com/fmxyw/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 = "";
            }
        }

link
posted on 2008-08-26 17:31  fmxyw  阅读(2025)  评论(1编辑  收藏  举报