Streamreader 在读取 FTP 带空格的 DirectoryList 时抛出 ObjectDisposed 异常

Streamreader Throwing ObjectDisposed Exception When Reading FTP DirectoryList With Spaces

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

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

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;
    }

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