1

次のコードを使用することを考えていますが、何百ものファイルを転送したいので、ファイル転送のたびに接続してから切断するのは現実的ではありません。

request = (FtpWebRequest) FtpWebRequest.Create(FtpAddress + file);

request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(User, Pass);

request.UsePassive = IsPassive;
request.UseBinary = true;
request.KeepAlive = false;

FileStream fs = File.OpenRead("");
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();

Stream ftpStream = request.GetRequestStream();
ftpStream.Write(buffer, 0, buffer.Length);

ftpStream.Close();

単一の接続を使用してこれらすべてのファイルをアップロードするには、どのようなオプションがありますか?

4

1 に答える 1

3

私はこれが真実であることを確認していませんが、あなたが設定した場合、私のクイック30秒検索で

request.KeepAlive = true;

最後のリクエストを除いて作成するすべてのリクエストで、明らかに最初のFTPWebRequestのみが完全なログイン接続を確立します。

次に、最後のFTPWebRequestを作成するときに、

request.KeepAlive = false;

完了すると接続が閉じます。FTPサーバーのログにアクセスできる場合は、これを確認できます。

于 2011-01-18T16:58:11.397 に答える