总的来说,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保持活动状态。多个文件上传使用多线程为佳。
|
请发表评论