プロが教える店舗&オフィスのセキュリティ対策術

ネットで調べたところ1つのファイルであれば、
下記の記述でアップロードできることがわかったのですが、
別々のフォルダにあるにファイルを複数同時にアップロードするプログラムがわかりません。

どなたかご教示ください。よろしくお願いいたします。
using System;
using System.Net;
using System.IO;

class FtpWebPut
{
 static void Main()
 {

  string uri = "ftp://servername/Upload/secret.png";
  string myFile = "tmp.png";

  WebRequest req = WebRequest.Create(uri);
  req.Credentials = new NetworkCredential("user01", "mypassword");
  req.Method = WebRequestMethods.Ftp.UploadFile;

  using (Stream st = req.GetRequestStream())
  using (FileStream fs = new FileStream(myFile, FileMode.Open))
  {
   Byte[] buf = new Byte[1024];
   int count = 0;

   do
   {
    count = fs.Read(buf, 0, buf.Length);
    st.Write(buf, 0, count);
   }
   while (count != 0);
  }
 }
}

A 回答 (2件)

FTPで複数を同時にとなると、先の方も書いているようにマルチスレッドにする方法が良いと思います。


その場合、FTP接続は同じアカウントを使う予定でしょうか?それとも別のアカウントでしょうか?
FTPサーバによっては、1つのFTPアカウントに対して1つの接続しかできないのがあるので、
マルチスレッドで実装するなら、FTPアカウントも別にするのが安心です。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。マルチスレッドでする方法で以前作っており、同時に複数のファイルを一度に送る方法を試してみたかったので今回質問しました。質問に回答いただきありがとうございました。

お礼日時:2011/06/10 13:47

「C#」と「マルチスレッド」というキーワードで


検索してみてください。一杯例が出てます。
そこで、1スレッド-1ファイルとすれば問題
なく実現できるでしょう。
経験から言うと、マルチスレッドは理論値
よりも効率がよいようです。シリアルに2個
ファイルを転送する時間はマルチスレッドで
2個ファイルを同時に転送する時間×2より
長いことが多いものです。マシンスペックにも
よりますが、ダブルコア、1Gメモリの場合では
64スレッドくらいまでは効率が下がることは
ないと思います。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。検討してみます。ご教示ありがとうございました。

お礼日時:2011/06/10 13:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!