C#开发FTP的一点总结

      总的来说,C#提供了FTP很简单的方法,封装好的FtpWebRequest和FtpWebResponse,使得开发FTP模块很简单。但是封装好之后许多自定义化定制会有些问题,此处不具体详述。下面看期间遇到的一些问题:

try{
            this.ftpUri = new Uri(ftpPath);
            this.webrequest = (FtpWebRequest)WebRequest.Create(ftpUri);

            if ((bool)radioButton_Binary.IsChecked)
            {
                webrequest.UseBinary = true;
            }
            else
            {
                webrequest.UseBinary = false;
            }

            webrequest.Credentials = new NetworkCredential(ftpConfig.ftpUserName, ftpConfig.ftpPasswd);
            }

上面代码为FTP连接初始化的内容。webrequest.Method = WebRequestMethods.Ftp.UploadFile;Method指示进行何种FTP操作,但是在FTP封装的时候每次进行操作都要进行上述代码操作,
FtpWebRequest并没有提供一种会话保持机制(或者提供了,笔者没有找到?求惑),没有办法像一些FTP工具一样连接后自动保持会话直至超时,每次进行NetworkCredential是一种很不爽的操作。

PS文件上传时可以使用delegate时UI保持活动状态。多个文件上传使用多线程为佳。

posted @ 2011-09-02 14:23  梦回千秋云断  阅读(770)  评论(1编辑  收藏  举报