Streamreader 在读取 FTP 带空格的 DirectoryList 时抛出 ObjectDisposed 异常
Streamreader Throwing ObjectDisposed Exception When Reading FTP DirectoryList With Spaces
我正在开发一个简单的 FTP 应用程序,它读取服务器的服务器清单并下载新文件。为此,我必须阅读目录列表以了解其内容。当文件名 and/or 子目录名称不包含白色 space 时,FTP ListDirectoryDetails 工作正常。但是,如果目录有白色 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 测试版)在本地尝试了您的代码。您的代码可以很好地读取带有空格的目录名称。我假设您的问题特定于您的数据或环境。捕获网络流量可能会提供一些见解。
我正在开发一个简单的 FTP 应用程序,它读取服务器的服务器清单并下载新文件。为此,我必须阅读目录列表以了解其内容。当文件名 and/or 子目录名称不包含白色 space 时,FTP ListDirectoryDetails 工作正常。但是,如果目录有白色 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 测试版)在本地尝试了您的代码。您的代码可以很好地读取带有空格的目录名称。我假设您的问题特定于您的数据或环境。捕获网络流量可能会提供一些见解。