Laden...

Fehler 501 bei FTP Webrequest Schreibversuch

Erstellt von skywalker1979 vor 11 Jahren Letzter Beitrag vor 11 Jahren 3.046 Views
S
skywalker1979 Themenstarter:in
9 Beiträge seit 2012
vor 11 Jahren
Fehler 501 bei FTP Webrequest Schreibversuch

Hallo Zusammen,

Ich hatte letztens das Problem, dass ich über einen FTP-Zugriff auf ein Verzeichnis F: zugreifen wollte.
Das habe ich durch die Codezeile

string uri = "ftp://" + ftpServerIP + "/%2F/F:" + fi.Name;

hinbekommen.

Das Problem ist hierbei nur, dass ich die Dateien dann immer direkt auf F:/ schreibe. Jetzt möchte ich einen Ordner einfügen, in den ich schreiben kann.

Füge ich jetzt allerdings den Ordner in den Aufruf von oben auf folgende Weise mit ein:

string uri = "ftp://" + ftpServerIP + "/%2F/F:" + "Ordner/" + fi.Name;

dann bekomme ich die Fehlermeldung : > Fehlermeldung:

WebException wurde nicht behandelt. Der Remoteserver hat einen Fehler zurückgegeben: (501) Syntaxfehler in Parametern oder Argumenten.

Ich habe schon verschiedene Beiträge hierzu gelesen, sehe aber nicht wo mein Fehler liegen könnte.

Danke und Gruß

Skywalker

D
615 Beiträge seit 2009
vor 11 Jahren

Hallo Skywalker

Dies ist ggf. nicht gewünschte Antwort, jedoch eine mögliche Lösung 😃

Ich würde ein Ordner im FTP Pfad erstellen. Genau genommen nicht ein "normalen Ordner" sondern ein hard Link auf dein F:\bla Verzeichniss.

mklink

Beste Grüsse

Diräkt

5.657 Beiträge seit 2006
vor 11 Jahren

Hi skywalker1979,

der FTP-Zugang sollte doch einen Root-Ordner zugeteilt bekommen. Ich kann mir nicht vorstellen, daß du mit dem Dateisystem-Pfad (F:...) einen Zugriff auf einen Ordner bekommst.

Christian

Weeks of programming can save you hours of planning

T
708 Beiträge seit 2008
vor 11 Jahren

Wie MrSparkle schon vermutet, bin ich auch überrascht einen FTP-Pfad mit einem Laufwerksbuchstaben anzusprechen. Möglicher weise ist der Root-Ordner einfach als "F:" benannt. Aber das widerspricht etwas den Namenskonventionen von Ordnern...

Wie auch immer, hier fehlt definitiv noch ein Slash:

string uri = "ftp://" + ftpServerIP + "/%2F/F:" + "Ordner/" + fi.Name;  

Es müsste "/%2F/F:" + "++/++Ordner/" heißen.

D
615 Beiträge seit 2009
vor 11 Jahren

...

es gibt noch so schöne Methoden wie string.Format und Path.Combine

...

Beste Grüsse

Diräkt

S
skywalker1979 Themenstarter:in
9 Beiträge seit 2012
vor 11 Jahren

Hallo Zusammen,

ich versuche mal die Geschichte mit dem F: zu erklären.
Hierbei handelt es sich um eine Partition auf einem Speicher, auf den ich per FTP zugreifen kann.
Die Bezeichnung ist hierbei fest vorgegeben.
Die Unterordner auf die ich zugreifen möchte sind auf der Partition vorhanden, da ich diese mit Filezilla angelegt habe und damit auch schreibend und lesend drauf zugreifen kann.

Leider funktioniert mit den c# ftp webrequest Funktionen nur ein Schreiben und Lesen direkt im Root-Verzeichnis F:

@trib
leider funktioniert dein Hinweis mit dem zusätzlichen "/" auch nicht.

5.657 Beiträge seit 2006
vor 11 Jahren

Hi skywalker1979,

es ist doch nicht die gesamte Partition per FTP freigegeben, sondern nur der FTP-Root-Ordner.

Christian

Weeks of programming can save you hours of planning

S
skywalker1979 Themenstarter:in
9 Beiträge seit 2012
vor 11 Jahren

Ich hab da nochmal eine Idee,

kann es sein, das ich die Schritte im c# webrequest quasi Schritt für Schritt abarbeiten muss?
Also:

  1. Verbindung aufbauen
  2. Verzeichnis wechseln
  3. Daten schreiben oder lesen
  4. Verbindung beenden

Bei Filezilla mache ich das ja eigentlich so Schritt für Schritt.

5.657 Beiträge seit 2006
vor 11 Jahren

Es gibt auch ein ausführliches Beispiel in der Doku der FtpWebRequest-Klasse.

Weeks of programming can save you hours of planning