从远程服务器获取二进制文件列表

时间:2012-10-04 10:35:51

标签: c# ftp ftpwebrequest

我正在开发一个需要从服务器文件夹下载二进制文件的系统。在这里我将在下载之前检查它们是否在我的本地文件夹中。所以我需要获取 * .bin 文件的列表。

我在下面尝试过代码,但它会生成列出服务器文件夹中的所有文件。

    private string[] GetRemoteFileList()
    {
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(_remoteHost));
        request.Credentials = new NetworkCredential(_remoteUser, _remotePass);
        request.Method = WebRequestMethods.Ftp.ListDirectory;

        FtpWebResponse response = (FtpWebResponse)request.GetResponse();
        Stream responseStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(responseStream);

        string FileNames = reader.ReadToEnd();
        string[] Files = Regex.Split(FileNames, "\r\n");
        return Files;
    }

我需要的只是过滤掉* .bin文件。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

你有什么尝试?

您现在在Files中包含当前目录中所有文件的数组。你为什么不过滤那个清单?例如:

return Files.Where(
    f => f.EndsWith(".bin", StringComparison.OrdinalIgnoreCase)
                  ).ToList();