C# "Illegales Zeichen im Pfad"?

1 Antwort

Du musst möglicherweise den Backslash escapen, also "\" durch "\\" ersetzen, hierfür sollte es eine fertige Funktion geben
Dass Du hiermit "P.s. Der der es richtig hat kriegt die "Hilfreichste Antwort"." gegen die GF-Regeln verstößt, ist Dir bekannt?  ;)

SadesTechno 
Fragesteller
 17.01.2016, 02:45

Auch schon probiert. gebe praktisch nur den Pfad ein, auch mit einem @davor.

0
GoodbyeKitty1  17.01.2016, 02:49
@SadesTechno

Hieraus:

E:\DB\GChat\History\History.txt

MUß (!) innerhalb Deines Codes das:

E:\\DB\\GChat\\History\\History.txt

werden, wenn Du mit File-Operationen darauf arbeiten möchtest. Der "\" escaped das nachfolgende Zeichen. Wenn dort also z.B. ein Doppelpunkt steht, wird daraus die Escape-Sequenz "\:" - und das KANN kein valider Dateiname mehr sein.

0
GoodbyeKitty1  17.01.2016, 03:07
@SadesTechno

Du sollst Deiner Software ja auch nicht das "\\" füttern, sondern den Parameter für den relevanten Dateisystems-Zugriff escapen. Wenn das von "draußen", also als Parameter, so reinkommt, dann muss das nicht zwingenderweise zum selben Ergebnis führen.
eine andere Möglichkeit wäre, dass Du am Ende (!) des Arguments noch ein \r\n drinstehen hast (also quasi das "Return"-Zeichen, das Du mitschickst, wenn Du den Befehl absetzt.) - hier hilft Dir das trimmen des Arguments.

0
SadesTechno 
Fragesteller
 17.01.2016, 03:29
@GoodbyeKitty1

Geht immernoch nicht, kann es vielleicht sein, dass die Textboxen ja sozusagen in dauerschleife gefüllt werden, immer wenn ein neues Item ankommt, und die aktion irgendwie unterbrochen werden muss?

0
GoodbyeKitty1  17.01.2016, 03:32
@SadesTechno

Umm, mach es Dir doch nicht so kompliziert - natürlich muss man beim Programmieren manchmal solche Ideen "durchspinnen", aber am Ende des Tages ist die schnellste Lösung bei sowas immer noch: Breakpoint im Code setzen und sich das Ganze dann im Debugger anschauen - da wird's dann normalerweise sofort klar, was das Problem ist.
Alternativ: Debug-Output auf die Konsole rausschreiben, überall da, wo es Sinn machen könnte. Das nennt sich "printf-Debugging", Google verrät Dir mehr :)

0