Datei von FTP zum Speicher in C # lesen

8

Ich möchte eine Datei von einem FTP-Server lesen, ohne sie in eine lokale Datei herunterladen zu müssen. Ich habe eine Funktion geschrieben, aber es funktioniert nicht:

%Vor%     
Mselmi Ali 23.05.2011, 14:35
quelle

9 Antworten

23

Hier ist ein einfaches Arbeitsbeispiel, das Ihren Code verwendet, um eine Datei von den öffentlichen FTP-Servern von Microsoft zu erhalten:

%Vor%

Ich nehme an, dass Sie hier in Ihrem Code einen Schrägstrich in dieser Zeile finden:

%Vor%

Vielleicht zwischen FtpPath und FileName ?

    
Kev 23.05.2011, 14:53
quelle
2

Der Code, den Sie oben haben, ist sehr ähnlich zu einem anderen Stackoverlow-Beispiel, das ich vor zwei Tagen selbst gefunden und benutzt habe. Sofern Sie den URI, den Benutzer und das Passwort korrekt eingestellt haben, wird die Datei heruntergeladen und der Inhalt auf FileString gesetzt. Ich bin mir nicht sicher, was Sie meinen, wenn Sie die Datei lesen wollen, ohne sie herunterzuladen. Dies ist nicht wirklich eine Option.

Wenn Sie sich Dateiattribute ansehen wollen (ich sehe, dass Sie "Version" erwähnen), könnten Sie den folgenden Code verwenden, um den gesamten Dateinamen, die Daten und die Größe vom FTP-Server abzurufen, ohne die Datei herunterzuladen.

Rufen Sie GetFileInfo auf und geben Sie den Dateinamen ein (stellen Sie sicher, dass Sie den Code befolgen, um den vollständigen FTP-Pfad, den Benutzer und das Passwort festzulegen). Dadurch erhalten Sie ein FTPFileInfo-Objekt mit Name, Datum und Größe zurück.

%Vor%     
Jemes 23.05.2011 14:47
quelle
0

Es ist unmöglich zu wissen, was das Problem ohne Details über den Fehler / die Ausnahme ist.

Bei einer Schätzung scheinen Sie version nach der ursprünglichen Deklaration keinen neuen Wert zuzuweisen

%Vor%

Versuchen Sie, Ihren Code in

zu ändern %Vor%     
Longball27 23.05.2011 14:44
quelle
0

C Sharp GUI-App. Minimale FTP-Übertragung, nicht elegant, aber es funktioniert gut. GUI, nicht Konsole.

Wetter von Noaa. Finden Sie Ihre Region (suchen Sie nach Ihrem Metar)! Ein METAR-Wetterbericht wird überwiegend von Piloten zur Erfüllung eines Teils eines Vorflugs verwendet.

Build mit vs 2012 Premium RC (Juli 2012)

(Klicken Sie auf Label, nicht auf Schaltfläche)

%Vor%     
stephane Marchand 24.07.2012 13:37
quelle
0
%Vor%     
Sambath Kumar S 02.07.2014 09:12
quelle
0

Ich weiß, dass dies eine alte Frage ist, aber ich dachte, ich würde pathcombine für den nächsten Leser empfehlen, der das hier liest. Hilft bei der Beseitigung dieser Art von Problemen.

%Vor%     
James R 10.09.2014 14:42
quelle
0

Wenn die Datei klein ist, verwenden Sie am besten WebClient.DownloadData :

%Vor%

Wenn es sich bei der Datei um eine Textdatei handelt, verwenden Sie WebClient.DownloadString :

%Vor%

Es wird davon ausgegangen, dass der Dateiinhalt in UTF-8 codiert ist (auch eine einfache ASCII-Datei). Wenn Sie eine andere Codierung verwenden müssen, verwenden Sie die Eigenschaft WebClient.Encoding .

Wenn die Datei groß ist, so dass Sie sie in Blöcken verarbeiten müssen, anstatt sie ganz in den Speicher zu laden, verwenden Sie FtpWebRequest :

%Vor%

Wenn es sich bei der großen Datei um eine Textdatei handelt und Sie sie nach Zeilen anstatt nach Blöcken fester Größe verarbeiten möchten, verwenden Sie %Co_de% :

%Vor%

Auch hier wird die UTF-8-Codierung vorausgesetzt. Wenn Sie eine andere Kodierung verwenden möchten, verwenden Sie eine Überladung von StreamReader contructor, die auch StreamReader .

    
Martin Prikryl 13.11.2017 07:25
quelle
-1

Wir können die Methode unten verwenden, um das Dateiattribut von ftp zu erhalten, ohne die Datei herunterzuladen. Das funktioniert gut für mich.

%Vor%     
Chandresh Singh Rathore 01.10.2013 05:57
quelle
-3

Sehen Sie sich meine FTP-Klasse an, es könnte genau das sein, was Sie brauchen.

%Vor%

Zur Initialisierung:

%Vor%

Ссылка

    
THE AMAZING 23.02.2015 08:58
quelle

Tags und Links