0

请注意,下面描述的问题是 Fedora 上的 Mono。我从 Visual Studio 测试了相同的代码,它的行为完全符合预期。这是 Mono 中的错误吗?

在浏览器中,我可以转到ftp://10.32.70.50/docs输入用户名/密码后,我可以列出 ~username/docs 的内容

我的 ftp 客户端软件将读取ftp://10.32.70.50//我的登录的根目录 ( ) 或顶级目录,而不管 ip ( ftp://10.32.70.50/docs) 后面的相对路径如何。

List<string> dirlist = new List<string>();
Uri testuri = new Uri(@"ftp://10.32.70.50:21/doc");
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(testuri); 
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential("username", "password");

FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
while (reader.Peek() >= 0)
{
   dirlist.Add((reader.ReadLine()));
}

如何让我的代码使用附加在 URI 中的路径?

4

1 回答 1

1

更新:https ://bugzilla.xamarin.com/show_bug.cgi?id=12850

解决方法:在路径末尾附加一个斜杠,它将起作用。


这是在 2011 年 6 月作为 Mono 中的错误提交的:

错误 698551 - FtpWebRequest:ListDirectory/ListDirectoryDe​​tails 丢弃文件名

开放时间:2011-06-07 14:35 UTC 最后修改时间:2011-06-07 14:35:02 UTC

于 2013-06-23T13:28:06.653 回答