我知道FtpClient.GetListing()和FileListOptions.Recursive目前存在问题,所以我试图像这样手动列出远程文件夹中的所有文件:
foreach (var child in await client.GetListingAsync())
{
switch(child.Type)
{
case FtpFileSystemObjectType.Directory:
{
client.SetWorkingDirectory(child.FullName);
await GetFilesRecursively(client);
break;
}
case FtpFileSystemObjectType.File:
{
foreach (var file in await client.GetListingAsync(child.FullName))
{
var newItem = new FTPFile() { FullPath = child.FullName } ;
Console.WriteLine($"Found: {file.FullName}");
listing.Add(newItem);
}
break;
}
}
}
这会产生预期的结果,但有时(看似随机)会引发以下异常:
FluentFTP.FtpCommandException:无法识别本地数据套接字:地址已在使用中
谷歌搜索此错误似乎表明它是服务器端问题,因为我对此无能为力,可以通过我的代码解决该问题吗?