È possibile utilizzare FtpWebRequest; tuttavia, questo è un livello abbastanza basso. Esiste una classe di livello superiore WebClient, che richiede molto meno codice per molti scenari; tuttavia, non supporta FTP/SSL per impostazione predefinita. Fortunatamente, è possibile fare WebClient
lavoro con FTP/SSL registrando il proprio prefisso:
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;
}
}
Una volta fatto questo, è possibile utilizzare WebClient
quasi come normale, se non che le vostre URI iniziano con "FTPS: //" invece di "ftp: //". L'unica avvertenza è che devi specificare il parametro method
, poiché non ci sarà un default. Per esempio.
using (var webClient = new WebClient()) {
// Note here that the second parameter can't be null.
webClient.UploadFileAsync(uploadUri, WebRequestMethods.Ftp.UploadFile, fileName, state);
}
fonte
2011-08-11 04:24:36
Giusto per far conoscere la versione gratuita non supporta FTPS, la versione pro fa – tsukimi