.NET Framework 4.8 の時点では、 はFtpWebRequest
まだHTTP プロキシ経由でファイルをアップロードできません。
指定したプロキシが HTTP プロキシの場合、DownloadFile、ListDirectory、および ListDirectoryDetails コマンドのみがサポートされます。
そして、FtpWebRequest
現在は推奨されていないため、おそらく決してそうはなりません。そのため、サードパーティの FTP ライブラリを使用する必要があります。
たとえば、WinSCP .NET アセンブリでは、次を使用できます。
// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Ftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
};
// Configure proxy
sessionOptions.AddRawSettings("ProxyMethod", "3");
sessionOptions.AddRawSettings("ProxyHost", "proxy");
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
// Upload file
string localFilePath = @"C:\path\file.txt";
string pathUpload = "/file.txt";
session.PutFiles(localFilePath, pathUpload).Check();
}
tje のオプションについては、 raw 設定SessionOptions.AddRawSettings
を参照してください。
WinSCP GUIで C# FTP コード テンプレートを生成する方が簡単です。
WinSCP .NET アセンブリはネイティブ .NET ライブラリではないことに注意してください。これはむしろ、コンソール アプリケーションに対する薄い .NET ラッパーです。
(私は WinSCP の作者です)