2017-05-16 15 views
1

検索して検索しましたが、これを行う方法が見つかりませんでした。アップロードしたいディレクトリにファイルがあります。ファイル名は絶えず変化するので、ファイル名でアップロードすることはできません。ここで私が試したことがあります。WebClientを使用してファイルのディレクトリをアップロードする

using (WebClient client = new WebClient()) 
{ 
    client.Credentials = new NetworkCredential("User", "Password"); 
    foreach (var filePath in files) 
     client.UploadFile("ftp://site.net//PICS_CAM1//", "STOR", @"PICS_CAM1\"); 
} 

しかし、私は、コンパイラエラーを取得しています:私が研究している

The name 'files' does not exist in the current context

すべてが、これは動作するはずと言います。

WebClient経由でファイルのディレクトリをアップロードする方法はありますか?

答えて

0

を見ることができるように、あなたはあなたがfilesを定義し、設定する必要があなたのコードの多くを掲示する必要があります。特定のローカルディレクトリにすべてのファイルをアップロードする場合は、たとえばDirectory.EnumerateFilesを使用します。

WebClient.UploadFileの引数は、ターゲットディレクトリのURLだけでなく、ターゲットファイルの完全なURLでなければなりません。

IEnumerable<string> files = Directory.EnumerateFiles(@"C:\local\folder"); 

using (WebClient client = new WebClient()) 
{ 
    client.Credentials = new NetworkCredential("username", "password"); 

    foreach (string file in files) 
    { 
     client.UploadFile(
      "ftp://example.com/remote/folder/" + Path.GetFileName(file), file); 
    } 
} 
+0

Martinさんありがとうございました。私はC#に新しいので、IEnumerableを使用することについて考えなかった。私は今朝遅くこれを試し、これがうまくいくかどうかを知らせます。 –

+1

マーティン、チャームのように働いた!ありがとうございました! –

+0

ディレクトリまたはファイルがftp/httpに存在しない場合はどうなりますか? 'UploadFile'関数はそれらを作成しようとしますか? –

0

あなたのウェブクライアントのアップロードはうまくいくと思います。あなたの問題は、あなたの変数filesが範囲外であることです。

私たちはより良い

関連する問題