这段时间由于工作的关系,一直研究FTP 服务器/客户端的相关程序,发现了不少问题,有些确实是微软的bug(或者说相关代码不够健壮) 。
一、微软IE浏览器作为FTP客户端的bug
上传含中文字符的多级目录的失败的bug,文件名是否中文无关,只要目录中出现中文字符,就会出现该问题。用网络嗅探器探测交互的数据发现,创建多个目录成功后,在用“CWD”命令调转当前目录时FTP客户端出现bug,含中文字符的目录名称,中文信息被过滤掉,导致整个拷贝过程失败。
这个bug微软某个版本的补丁应该修改了(相关信息我没有查到),因为在Vista系统上IE的ftp客户端正常。我的出现问题的系统是Windows XP sp2,IE6.0。有心的朋友可以测试一下。
二、“基础连接已关闭:服务器提交了协议冲突”的错误信息
这个问题应该很出名,在网上可以搜索一大片,不过大部分是Http协议冲突,少有ftp的。我这里仅是针对ftp使用过程中的问题。
这个问题是在使用微软.net 2.0 框架集 “WebClient”类的时出现的问题,相关代码如下:
private void btnDown_Click( object sender, EventArgs e)
{
// string URL = @"ftp: // admin:admin@"+@txtIP.Text+" // NORFlash // ";
string URL = @" ftp:// " + txtIP.Text + " //HardDisk// " ;
string strFileName = "" ;
lstInfo.Items.Clear();
if (openFileDialog.ShowDialog()
{
// string URL = @"ftp: // admin:admin@"+@txtIP.Text+" // NORFlash // ";
string URL = @" ftp:// " + txtIP.Text + " //HardDisk// " ;
string strFileName = "" ;
lstInfo.Items.Clear();
if (openFileDialog.ShowDialog()