2013-07-09 11 views
20

domanda Riscritta con più informazioniCome ottenere la stringa del percorso da un java.nio.Path?

Ho un codice che crea un oggetto Path utilizzando percorsi relativi, in questo modo: Paths.get("..", "folder").resolve("filename"). Più tardi, voglio ottenere il percorso ".. \ folder \ filename" da esso (sono su Windows, quindi backslash). Quando eseguo questo codice utilizzando la compilazione manuale o Eclipse, questo funziona correttamente.

Tuttavia, quando lo eseguo utilizzando Maven, non funziona più. Il metodo toString() restituisce [.., folder, filename] anziché una vera e propria stringa di percorso. Utilizzare path.normalize() non aiuta. L'utilizzo di path.toFile().getPath() restituisce quello che sto cercando, ma ritengo che dovrebbe esserci una soluzione utilizzando solo l'API nio.path.

+2

Non sembra giusto. Sia 'Paths.get (" percorso/a/file "). AString()' e 'Paths.get (" percorso "," a "," file "). AString()' entrambi restituiscono '" percorso/a/file "' per me. – cambecc

+0

Lo stesso vale per 'Paths.get (" percorso/a "). Solve (" file "). ToString()', che restituisce '" percorso/su/file "'. – cambecc

+0

Potrei sbagliarmi ma per me entrambi restituiscono la stessa stringa !!! – NINCOMPOOP

risposta

22

Usa:

Paths.get(...).normalize().toString() 

Un'altra soluzione woul essere:

Paths.get(...).toAbsolutePath().toString() 

Tuttavia, si ottengono risultati strani: Paths.get("/tmp", "foo").toString() restituisce /tmp/foo qui. Qual è il tuo filesystem?

+0

Domanda aggiornata con maggiori informazioni su quando fallisce. – Jorn

+0

Sei sicuro che questo è java.nio.Paths che usi? – fge

+0

Sì, sono sicuro :) 'java.nio.file.Paths', per la precisione. – Jorn

Problemi correlati