Ich habe eine Klasse für alle meine FTP-Übertragungen Hexe funktionieren gut in C# 3.5, aber da ich aktualisiert, um das Framework 4, ich habe einige Probleme.
Ich suche auf Google, finde aber keine Lösungen.
Insbesondere mit einer Methode zur Überprüfung, ob ein Verzeichnis existiert:
public bool DirectoryExists(string directory)
{
bool directoryExists = false;
if (directory.Substring(0, 1) != "/")
directory = "/" + directory;
FtpWebRequest request = GetFtpWebRequest(host + directory, WebRequestMethods.Ftp.PrintWorkingDirectory);
try
{
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
directoryExists = true;
}
}
catch (WebException)
{
directoryExists = false;
}
return directoryExists;
}
private FtpWebRequest GetFtpWebRequest(string url, string method)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
request.UseBinary = true;
request.KeepAlive = true;
request.UsePassive = (mode == Modes.Passive);
request.Timeout = Timeout.Infinite;
request.ServicePoint.ConnectionLimit = 6;
request.ReadWriteTimeout = Timeout.Infinite;
if (credential == null)
credential = new NetworkCredential(login, password);
request.Credentials = credential;
request.Method = method;
return request;
}
Die Methode DirectoryExists gibt immer true zurück (auch wenn das Verzeichnis nicht existiert), aber nur auf dem Framework 4, bevor eine Ausnahme von GetFtpWebRequest geworfen wurde, wenn das Verzeichnis nicht existiert.
Hatte jemand dieses Problem?
Bitte sagen Sie mir nicht, dass ich eine andere Bibliothek verwenden soll, denn alle meine Programme hängen von dieser ab und ich möchte nicht alle aktualisieren ...