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%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
?
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%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
Versuchen Sie, Ihren Code in
zu ändern %Vor%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% Wenn die Datei klein ist, verwenden Sie am besten WebClient.DownloadData
:
Wenn es sich bei der Datei um eine Textdatei handelt, verwenden Sie WebClient.DownloadString
:
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
:
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
.
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%Sehen Sie sich meine FTP-Klasse an, es könnte genau das sein, was Sie brauchen.
%Vor%Zur Initialisierung:
%Vor%