Entwickler-Ecke
ASP.NET und Web - via ftp: Datei auf Unixserver "abholen" und lokal Speichern
estrella1410 - Mo 17.12.07 12:11
Titel: via ftp: Datei auf Unixserver "abholen" und lokal Speichern
Hallo..
habe folgendes Problem:
Ich möchte gerne ein Programm schreiben welches via ftp sich auf dem Server (mit Unix) anmeldet und dort eine Txt.-Datei abholt und auf meinem lokalen Rechner speichert...habe schon rumprobiert aber irgendwie kommt die nur ller an.
Hier mal mein Code
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| string filename = "C:/SpaceUnix.txt"; string username = "xyz"; string password = "abc"; string URI = "ftp://servername/Space_Unix.txt";
NetworkCredential nc = new NetworkCredential(username, password); WebRequest req = WebRequest.Create(URI); req.Credentials = nc; WebResponse resp = req.GetResponse(); using (FileStream fsb = new FileStream(filename, FileMode.CreateNew)) { BinaryWriter bw = new BinaryWriter(fsb); Byte[] read = new Byte[1024]; int bytes = resp.GetResponseStream().Read(read, 0, 1024); } |
Kann mir jemand evtl. helfen?
Gruß,
Jessy
Moderiert von
Christian S.: Code- durch C#-Tags ersetztModeriert von
Christian S.: Topic aus Sonstiges (C# / .NET) verschoben am Mo 17.12.2007 um 21:44
Christian S. - Mo 17.12.07 22:44
Hallo!
Du musst die entsprechende Methode setzen, indem Du den WebRequest in einen FtpWebRequest castest, der von der Create-Methode erzeugt wird, sobald eine URL übergibst, die mit "ftp://" anfängt:
Chrome-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| var url := 'ftp://www.eine-domain.de/eineDatei.txt'; var req := FtpWebRequest(WebRequest.Create(url)); req.Method := WebRequestMethods.http://Ftp.DownloadFile; req.Credentials := new NetworkCredential(aUsername, aPassword); req.UseBinary := true; using resp := req.GetResponse do using respStream := resp.GetResponseStream do begin var buffer := new Byte[2048]; var count : Integer; using f := File.Create('e:\eineDatei.txt') do repeat count := respStream.Read(buffer, 0, buffer.Length); if count > 0 then f.Write(buffer, 0, count); until count = 0; end; |
//edit: Fehler im Code korrigiert
estrella1410 - Do 20.12.07 12:11
vorab DANKE für die antwort
also ich habe mal versucht dein beispiel in meinen code umzusetzten aber ich komme kein stück vorran damit...habe auch ehrlich schwierigkeiten das umzusetzen in c# (sooo fit bin ich leider noch nicht da..)
kannst du mir da nochmal nen bsp viell. in c# gebn bzw. tipps welche teile bei mir fehlen/geändert werdn sollten?
Gruß
Jessy
Christian S. - Do 20.12.07 12:22
So unterschiedlich ist das doch gar nicht, in .NET sieht doch eh alles gleich aus ;-)
Mal sehen, ob ich das aus dem Kopf hinbekomme. :gruebel:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| string url = "ftp://www.eine-domain.de/eineDatei.txt"; FtpWebRequest req = (FtpWebRequest) WebRequest.Create(url); req.Method = WebRequestMethods.http://Ftp.DownloadFile; req.Credentials = new NetworkCredential(aUsername, aPassword); req.UseBinary = true; using (WebResponse resp = req.GetResponse) { using (Stream respStream = resp.GetResponseStream) { Byte[] buffer = new Byte[2048]; int count; using (FileStream f : File.Create(@"e:\eineDatei.txt")) { do { count = respStream.Read(buffer, 0, buffer.Length); if (count > 0) f.Write(buffer, 0, count); } while (count > 0); } } |
estrella1410 - Do 20.12.07 12:56
habe es jetzt hinbekommen :) danke schön
dann hab ich au nur noch eine kleine frage...ist die formatierung auch möglich? (habe jez alle informationen in 2 zeilen will aber alles hübsch bündig untereinander)
bin mir grad nich sicher wie das hier geht ... also ich weis dass es in vbs sowas wie "vbCrLf" gibt und in c# auch sowas wie "/r/n"...
hmm
Christian S. - Do 20.12.07 12:59
Ich weiß nicht wirklich, wovon Du redest :gruebel:
Aber es hört sich so an, als wäre es eine neue Frage, und bei denen gilt im Forum: Neue Frage -> Neuer Thread ;-)
estrella1410 - Do 20.12.07 13:28
gut hab ich gemacht :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!