Der sicherste Ansatz wäre, eine Liste von Dateien/Verzeichnissen pro Verzeichnis abzurufen und diese Liste zu analysieren.
// Get the object used to communicate with the server.
var request = WebRequest.Create(url);
request.Credentials = new NetworkCredential(username, password);
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
try
{
using(var response = request.GetResponse())
{
using(var stream = response.GetResponseStream())
{
using(var reader = new StreamReader(stream))
{
while(reader.Peek() >= 0)
{
var line = reader.ReadLine();
// check if this is a file or directory, filter list etc..
}
}
}
}
}
catch
{
}
Another- einfacher - Möglichkeit wäre, zu versuchen, die Dateien und fangen die Datetimestamp Ausnahme abzurufen, wenn die Datei nicht existiert. Sie sollten die Ausnahme überprüfen, da eine aus einem anderen Grund ausgelöst werden könnte.
var request = WebRequest.Create(url);
request.Credentials = new NetworkCredential(username, password);
request.Method = WebRequestMethods.Ftp.GetDateTimestamp;
try
{
using(var response = (FtpWebResponse)request.GetResponse())
{
// file exists
}
}
catch(WebException e)
{
// file probably doesn't exits
}