Meskipun solusi asli untuk mendapatkan direktori saat ini menggunakan empty Stringkarya. Tetapi disarankan untuk menggunakan user.dirproperti untuk direktori saat ini dan user.homeuntuk direktori home.
Path currentPath = Paths.get(System.getProperty("user.dir"));
Path filePath = Paths.get(currentPath.toString(), "data", "foo.txt");
System.out.println(filePath.toString());
keluaran:
/Users/user/coding/data/foo.txt
Dari kelas Dokumentasi Path Java :
Jalur dianggap jalur kosong jika hanya terdiri dari satu elemen nama yaitu empty. Mengakses file menggunakan salah empty path is equivalent to accessing the default directorysatu dari sistem file.
Mengapa Paths.get("").toAbsolutePath()berhasil
Ketika string kosong dilewatkan ke Paths.get(""), Pathobjek yang dikembalikan berisi jalur kosong. Tetapi ketika kita memanggil Path.toAbsolutePath(), ia memeriksa apakah panjang jalur lebih besar dari nol, jika tidak, ia menggunakan user.dirproperti sistem dan mengembalikan jalur saat ini.
Berikut adalah kode untuk implementasi sistem file Unix: UnixPath.toAbsolutePath ()
Pada dasarnya Anda perlu membuat Pathinstance lagi setelah Anda menyelesaikan jalur direktori saat ini.
Juga saya sarankan menggunakan File.separatorCharuntuk kode platform independen.
Path currentRelativePath = Paths.get("");
Path currentDir = currentRelativePath.toAbsolutePath(); // <-- Get the Path and use resolve on it.
String filename = "data" + File.separatorChar + "foo.txt";
Path filepath = currentDir.resolve(filename);
// "data/foo.txt"
System.out.println(filepath);
Keluaran:
/Users/user/coding/data/foo.txt
filepath.toString()