Hi,
in meiner Software bekomme ich einen String, der einen Dateipfad angibt, wie z.B. „C:\test\meinedatei.dat“
Um diese Datei nun wirklich öffnen zu können, muß der String mit Escape-Sequenz aufgemöbelt werden zu „C:\test\meinedatei.dat“.
Gibt es eine Funktion oder so dafür?
Besten Dank
Winni
Um diese Datei nun wirklich öffnen zu können, muß der String
mit Escape-Sequenz aufgemöbelt werden zu „C:\test\meinedatei.dat“.
Warum? Java kommt auch mit „C:\temp\bla.txt“ zurecht.
Du bekommst nur einen Fehler, wenn du nicht "Escape-Sequenz"te
Strings im Quellcode angibst.
Ansonsten auch hier eine pragmatische „Loesung“:
String filename = txtEingabe.getText().replace('\\', '/');
Gruss, Patrick
Also wenn ich ein \n im Filenamen habe, ist alles aus…
Aber wenn der das mit dem replace packt, wäre gut.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Also wenn ich ein \n im Filenamen habe, ist alles aus…
Klar, gehoert da ja auch nicht unbedingt rein. Aber wie kommt
es darein?
Ich dachte, dass es sich hier um eine Benutzereingabe handelt
(Textfeld oder Dialogbox).
Aber wenn der das mit dem replace packt, wäre gut.
‚\n‘ ist ja meist am Ende eines Strings, so dass abschneiden doch
reichen sollte.
Gruss, Patrick
Also wenn ich ein \n im Filenamen habe, ist alles aus…
Klar, gehoert da ja auch nicht unbedingt rein. Aber wie kommt
es darein?
Ich dachte, dass es sich hier um eine Benutzereingabe handelt
(Textfeld oder Dialogbox).
Nein, es handelt sich leider um Pfadangaben, die durch Auslesen einer Konfigurations-Datei oder über das Holen von Environment-Daten (System-Variablen, Workaround etwas weiter unten) entstehen.
Aber wenn der das mit dem replace packt, wäre gut.
‚\n‘ ist ja meist am Ende eines Strings, so dass abschneiden
doch reichen sollte.
naja, nicht wirklich…
Wenn ich in so einer Ini-Datei folgende Zeile habe:
TEST_DIR=C:\neuerOrdner
dann wird mit dem Reader die Zeile korrekt in den String eingelesen.
Nur wenn ich dann den String weiterverarbeiten will, wird dieser Teilstring „\n“ eben als Zeilenvorschub interpretiert.
Leider passiert das auch mit anderen Buchstaben.
Jemand ne Idee?
Gruss, Patrick
Gruß
Winni
Nur wenn ich dann den String weiterverarbeiten will, wird
dieser Teilstring „\n“ eben als Zeilenvorschub interpretiert.
Leider passiert das auch mit anderen Buchstaben.
Also, nach der Zuweisung sieht der String so aus:
[0]= C
[1]= :
[2]= \n
[3]= e
[4]= u
[5]= e
[6]= r
[7]= O
…
Ausgabe:
C:
euerOrdner
Ich habe jetzt mal mit einem StringBuffer getestet:
...
StringBuffer sBuf = new StringBuffer(props.getProperty("TEST\_DIR"));
sBuf.replace(buff.indexOf("\n"), buff.indexOf("\n")+1, "\\n");
...
Jetzt sieht es so aus:
[0]= C
[1]= :
[2]= \
[3]= n
[4]= e
[5]= u
[6]= e
[7]= r
…
Ausgabe:
C:\neuerOrdner
Gruss, Patrick