FluentFTP手动递归抛出间歇性FTPCommandException

时间:2018-08-15 14:43:02

标签: recursion .net-core fluentftp

我知道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:无法识别本地数据套接字:地址已在使用中

谷歌搜索此错误似乎表明它是服务器端问题,因为我对此无能为力,可以通过我的代码解决该问题吗?

0 个答案:

没有答案