在此答案由Edward Brey
可能会回答你的问题.我没有提供自己的答案,而是复制爱德华所说的:
你可以使用FtpWebRequest; 然而,这是相当低的水平.有一个更高级别的WebClient类,它在许多场景中需要的代码要少得多; 但是,默认情况下它不支持FTP/SSL.幸运的是,您可以通过注册自己的前缀使WebClient与FTP/SSL协同工作:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
执行此操作后,您几乎可以像平常一样使用WebRequest,但您的URI以"ftps://"而不是"ftp://"开头.需要注意的是,您必须指定方法,因为不会有默认方法.例如
// Note here that the second parameter can't be null.
webClient.UploadFileAsync(uploadUri, WebRequestMethods.Ftp.UploadFile, fileName, state);
Run Code Online (Sandbox Code Playgroud)