# Systemunabhängig File Separator ersetzen



## The_S (19. Sep 2005)

Wie kann ich Systemunabhängig den File Separator ersetzen? Wenn ich das so 


```
File file = new File("C:/juhuuu/test");
String str = file.toString().replaceAll(System.getProperty("file.separator"), "_")
```

mache, bekomme ich eine Exception:



> Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: U
> nexpected internal error near index 1
> \
> ^


----------



## Bleiglanz (19. Sep 2005)

alter Hut

ggf. ist das ein \ und den müsstest du quoten

geht mit:


```
file.toString().replaceAll(Pattern.quote(System.getProperty("file.separator")), "_")
```


----------



## The_S (19. Sep 2005)

Danke, werd mir zusätzlich mal die Methode "quote" anschauen, hab ich noch nie was von gehört!


----------



## thE_29 (19. Sep 2005)

btw.: du kannst auch File.separator benutzen (java.io.File) dann, brauchst net immer das System.getProperty ausführen!


----------



## The_S (19. Sep 2005)

thE_29 hat gesagt.:
			
		

> btw.: du kannst auch File.separator benutzen (java.io.File) dann, brauchst net immer das System.getProperty ausführen!



Super! Danke. Was ich heute schon wieder alles gelernt hab ...


----------



## Bleiglanz (19. Sep 2005)

eigentlich kannst du gleich auf den regex verzichten und nur

replace

ausführen (du ersetzt ja nur chars)


----------



## The_S (19. Sep 2005)

Auch wieder war. Werd ich gleich ändern, hab ich sogar nochwas für die Performance getan.


----------



## The_S (28. Apr 2006)

Bleiglanz hat gesagt.:
			
		

> eigentlich kannst du gleich auf den regex verzichten und nur
> 
> replace
> 
> ausführen (du ersetzt ja nur chars)



Dazu nochmal eine Frage.

File.separator liefert ja einen String zurück, aber replace erwartet logischerweiße zwei chars. Kann ich also einfach mit File.separator.charAt(0); mir den File Separator als Char hohlen, oder gibt es Betriebssysteme die beispielsweise zwei Zeichen als File Separator haben?


----------



## Leroy42 (28. Apr 2006)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> oder gibt es Betriebssysteme die beispielsweise zwei Zeichen als File Separator haben?



Aber sicher doch. Gerade das recht bekannte und interessanterweise, immer noch
verwendete aus Redmond hat ausgerechnet eine zwei-Zeichen-Sequenz eingeführt,
obwohl sich schon mehr als 10 Jahre lang ein Zeichen genutzt wurde.

Benutzt wird CR (CarriageReturn=13), LF(Linefeed=10) als Zeilenvorschub, wie die
alten Fernschreiber(?).

Guckst du hier mal rein


----------



## The_S (28. Apr 2006)

Äh, Leroy? Es geht um file.separator nicht um line.separator ...


----------



## Leroy42 (28. Apr 2006)

:shock:  :shock:  :shock: 
Ist denn schon wieder Freitag?


----------



## Illuvatar (28. Apr 2006)

Zilli, API lesen! :bae:

Es gibt replace auch mit (CharSequence, CharSequence) als Parameter, und String implements CharSequence


----------



## Leroy42 (28. Apr 2006)

Illuvatar hat gesagt.:
			
		

> Zilli


 :shock: 
Hab' ich was verpaßt?


----------



## The_S (28. Apr 2006)

Leroy42 hat gesagt.:
			
		

> Illuvatar hat gesagt.:
> 
> 
> 
> ...



ja, aber nicht in diesem Forum 

@ Illi

joa ... was soll ich dazu noch sagen? Thx!  :toll:


----------

