我想从具有特定搜索模式的FTP服务器获取文件列表(例如:将所有文件都设置为“* .txt”)并仅使用C#.net下载这些文件。
以下是从FTP服务器返回文件列表的代码,请提供完成所需任务所需的附加代码。
FtpWebRequest reqFTP;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + coldata.Host + "/"));
//("ftp://" + coldata.host + "/"));
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(coldata.Uid, coldata.Pwd);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.Timeout = System.Threading.Timeout.Infinite;
reqFTP.Proxy = null;
reqFTP.KeepAlive = true;
reqFTP.UsePassive = true;
FtpWebResponse res = (FtpWebResponse)reqFTP.GetResponse();
response = reqFTP.GetResponse();
reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
// to remove the trailing '\n'
result.Remove(result.ToString().LastIndexOf('\n'), 1);
downloadRes = true;
return result.ToString().Split('\n');
感谢。
答案 0 :(得分:1)
您可以使用System.IO.Path.GetExtension,类似这样:
while (line != null)
{
if (System.IO.Path.GetExtension(line) == "txt")
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
}
不完全符合您的要求,但您无法为FTP指定搜索模式,请参阅此处: