2010-06-17 14 views
22

Potrzebuję przekonwertować ścieżkę pliku w systemie Windows, powiedz: C: \ Documents and Settings \ Manoj \ Desktop dla języka Java jako C:/Documents and Settings/Manoj/Desktop.ścieżka pliku Format Windows do formatu Java

Czy istnieje narzędzie do konwersji w ten sposób.?

+2

Czy możesz, dlaczego tego potrzebujesz? Ponieważ ogólnie w obsłudze plików java może automatycznie wykonywać te konwersje ... – Nivas

Odpowiedz

39
String path = "C:\\Documents and Settings\\Manoj\\Desktop"; 
path = path.replace("\\", "/"); 
// or 
path = path.replaceAll("\\\\", "/"); 

Więcej szczegółów w Docs

+8

+1 - Java ** to ** narzędzie;) –

9
String path = "C:\\Documents and Settings\\Manoj\\Desktop"; 
String javaPath = path.replace("\\", "/"); // Create a new variable 

lub

path = path.replace("\\", "/"); // Just use the existing variable 

String s są niezmienne. Po ich utworzeniu nie możesz ich zmienić. Oznacza to, że replace zwraca nowy ciąg, w którym cel ("\\") jest zastępowany przez zamiennik ("/"). Po prostu wywołanie replace nie zmieni się path.

Różnica między replaceAll a replace polega na tym, że replaceAll będzie szukał wyrażeń regularnych, a nie zastępuje.

3

Java 7 i nowsze obsługują klasę Path (w pakiecie java.nio). Możesz użyć tej klasy do przekonwertowania ścieżki łańcuchowej do takiej, która działa na bieżący system operacyjny.

Zastosowanie:

Paths.get("\\folder\\subfolder").toString() 

na maszynie Unix, daje /folder/subfolder. Działa również na odwrót.

https://docs.oracle.com/javase/tutorial/essential/io/pathOps.html

-2
String path = "C:\\Documents and Settings\\someDir"; 
path = path.replaceAll("\\\\", "/"); 

W systemie Windows należy użyć cztery odwrotny ukośnik, ale nie dwa.