使用空格读取FTP DirectoryList时,Streamreader抛出ObjectDisposed异常

时间:2016-07-10 12:17:24

标签: c# ftp async-await streamreader

我正在开发一个简单的FTP应用程序,它可以读取服务器的服务器清单并下载新文件。为此,我必须阅读目录列表中的内容。当文件名和/或子目录名称不包含空格时,FTP ListDirectoryDe​​tails可以正常工作。但是,如果目录有空格(即名称中的空格),我的读者会抛出ObjectDisposed异常。除了下面的方法之外,堆栈跟踪不包含任何用户代码(框架中其他方法调用的所有内容)。

我用Google搜索并用谷歌搜索了一些,但没有运气解释这个异常。任何帮助将不胜感激!谢谢!

public async Task<List<string>> ListDirectoryDetailsAsync()
    {
        var list = new List<string>();
        var request = CreateRequest(WebRequestMethods.Ftp.ListDirectoryDetails);

        using (var response = (FtpWebResponse)await request.GetResponseAsync())
        using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
        {
            while (!reader.EndOfStream)
            {
                list.Add(reader.ReadLine());
            }
        }
        return list;
    }

1 个答案:

答案 0 :(得分:0)

我已经针对FileZilla Server(版本0.9.57 beta)在本地尝试了您的代码。您的代码可以很好地读取带有空格的目录名称。我认为您的问题特定于您的数据或环境。捕获网络流量可能会提供一些见解。