2017-05-16 6 views
1

Ich habe gesucht und gesucht und kann keinen Weg finden, dies zu tun. Ich habe Dateien in einem Verzeichnis, das ich hochladen möchte. Die Dateinamen ändern sich ständig, so dass ich nicht nach Dateiname hochladen kann. Hier ist was ich versucht habe.Hochladen von Verzeichnis von Dateien mit 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\"); 
} 

Aber ich bin immer einen Compiler-Fehler:

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

Alles, was ich recherchiert sagt dies funktionieren sollte.

Hat jemand eine gute Möglichkeit, ein Verzeichnis von Dateien über WebClient hochzuladen?

Antwort

0

Sie sehen haben zu definieren und die files gesetzt. Wenn Sie alle Dateien in einem bestimmten lokalen Verzeichnis hochladen möchten, verwenden Sie beispielsweise Directory.EnumerateFiles. Das address Argument von WebClient.UploadFile muss eine vollständige URL zu einer Zieldatei und nicht nur eine URL zu einem Zielverzeichnis sein.

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

Danke Martin. Ich bin neu in C# und dachte nicht daran, IEnumerable zu verwenden. Ich werde das später am Morgen ausprobieren und Sie wissen lassen, ob das funktioniert. –

+1

Martin, arbeitete wie ein Charme! Vielen Dank! –

+0

Was ist, wenn Verzeichnis oder Datei nicht auf ftp/http existiert? Die 'UploadFile'-Funktion wird versuchen, sie zu erstellen? –

0

Ich denke, Ihr Web-Client-Upload funktioniert gut. Ihr Problem ist, dass Ihre Variable files nicht im Geltungsbereich ist.

Sie müssen mehr von Ihrem Code schreiben, damit wir besser