Sie können FtpWebRequest verwenden; Dies ist jedoch ein ziemlich niedriges Niveau. Es gibt eine übergeordnete Klasse WebClient, die für viele Szenarien viel weniger Code benötigt; FTP/SSL wird jedoch standardmäßig nicht unterstützt. Glücklicherweise können Sie WebClient
Arbeit mit FTP/SSL, indem Sie Ihre eigenen Präfix Registrierung:
private void RegisterFtps()
{
WebRequest.RegisterPrefix("ftps", new FtpsWebRequestCreator());
}
private sealed class FtpsWebRequestCreator : IWebRequestCreate
{
public WebRequest Create(Uri uri)
{
FtpWebRequest webRequest = (FtpWebRequest)WebRequest.Create(uri.AbsoluteUri.Remove(3, 1)); // Removes the "s" in "ftps://".
webRequest.EnableSsl = true;
return webRequest;
}
}
Sobald Sie dies tun, können Sie WebClient
fast wie normale verwenden, es sei denn, dass Ihr URIs beginnen mit „ftps: //“ statt von "ftp: //". Der einzige Nachteil ist, dass Sie den Parameter method
angeben müssen, da es keinen Standard gibt. Z.B.
using (var webClient = new WebClient()) {
// Note here that the second parameter can't be null.
webClient.UploadFileAsync(uploadUri, WebRequestMethods.Ftp.UploadFile, fileName, state);
}
Nur, damit Menschen die kostenlose Version wissen nicht, FTPS unterstützt, die Pro-Version tut – tsukimi