Backslashes in Pfadangaben mit .Net = Fehler

MyersGer

Mitglied
Hi,
ich habe ein mittelschweres Problem.
Ich verwende
Application.StartupPath + @"\einunterverzeichnis\file.txt";
um einen Pfad anzugeben. Soweit so gut. Funktioniert auch bei 90% aller PCs.
Bei einigen jedoch kommt es zu folgendem Fehler:

Es wird eine Exception geworfen, die ausgibt, dass das Programm "C:\Programme\MeinProgramm/einunterverzeichnis/file.txt" nicht gefunden werden kann. Das passiert scheinbar nur auf US Windowsversionen. Warum zum Geier werden die Backslashes einfach in Slashes umgewandelt?
 
Also entweder es geht, oder es geht nicht?! Ein Halbes tun gibs net...
Mach doch einfach mal 2 Backslashes also "\\dateiblabla.txt" und poste dann nochmal obs dann geht!
 
Ja genau das sag ich den Leute mit den Problemen ja auch immer.
Es kann nicht angehen, dass es bei fast jedem geht nur auf einigen US Systemen nicht. Aber ich hab mir Screenshots geben lassen von der Exception. Und da sind tatsächlich die \ zu / gemacht worden.
 
Hi!

Versuch es mal mit:

Application.StartupPath + @"\\einunterverzeichnis\\file.txt";

Man achte auf die doppelten "\"...

MfG
..::SD::..
 
Dann muss das @ aber weg, wenn man doppelte Backslashes verwendet. Also so:
Code:
Application.StartupPath + "\\einunterverzeichnis\\file.txt";
Im übrigen kann das schon sein, dass sich verschiedensprachige OS auch verschieden Verhalten. Bleibt letztendlich nur die Frage, ob es Bug oder ein Feature ist. ;)

Das könnte man aber über die Internationalisierung von .NET umgehen, denk ich mal.
 
Zuletzt bearbeitet:
Ja wie man die Pfadangaben macht, weiß ich auch ;p

Ich finde es nur komisch, dass es auf fast allen US Windows Versionen läuft, nur bei 3 Leuten nicht. Da muss eigentlich schon was verkorkst am OS sein.
Scheinbar hat aber noch keiner so ein Problem gehabt.
 
Vielleicht verwendest Du eine andere .NET-Version als die drei Leute. Meistens vergessen User irgendwelche Updates einzuspielen. Überprüf mal die Versionsnummern.

Vielleicht stimmen die Zeichentabellen nicht überein, was ich wiederum auch nicht glaube.

Wenn Du den Fehler nicht findest musst halt die Exception abfangen und eine Korrektur-Methode aufrufen, die Dir die Pfadangaben richtig stellt.

Aber sieh Dir in der MSDN doch mal die Punkte "Globalisierung" bzw. "Lokalisierung" an. Damit kannst Du für die US-Systeme spezielle Satelliten-Assemblies erstellen. Damit sollte der Fehler evtl. auch vom Tisch sein.
 
So Problem behoben. Es ist ein lokalisierungs Fehler, der aber mit dem SP1 für Net 1.1 nicht mehr auftritt. Leider ist das bisher nur Beta.

Danke
 
Zurück