我沒有 Windows 副本,但想知道在 Java 中表示路徑(例如\autoexec.bat在 Windows 下)的行為和推薦用法?autoexec.bat從語義上講,這樣的路徑將代表任何文件系統(tǒng)根上的文件。C:\因此,在表示文件之前,需要根據(jù)表示磁盤驅(qū)動(dòng)器(例如 )的路徑對(duì)其進(jìn)行解析。從這個(gè)意義上說,它不是絕對(duì)的。但是,我想它也沒有根組件。在Windows 上運(yùn)行JVM 時(shí)可以創(chuàng)建這樣的路徑嗎?如果是這樣,將getRoot()返回什么isAbsolute()?我使用Memory File System嘗試了以下代碼,但這會(huì)拋出InvalidPathException:“路徑不能以索引 1 處的分隔符開頭:\truc”。這是否忠實(shí)地反映了 Windows 下的行為,還是這個(gè)特定庫的怪癖?try (FileSystem fs = MemoryFileSystemBuilder.newWindows().build()) {? ? final Path truc = fs.getPath("\\truc");? ? LOGGER.info("Root: {}.", truc.getRoot());? ? LOGGER.info("Abs: {}.", truc.isAbsolute());? ? LOGGER.info("Abs: {}.", truc.toAbsolutePath());}這樣的路徑在 Windows 終端中是有效的,或者至少它們是我上次使用 Windows 時(shí)(很久以前)。創(chuàng)建這樣的路徑以標(biāo)記該路徑是“絕對(duì)的”(在以反斜杠開頭的意義上,因此不是相對(duì)于文件夾的意義上)會(huì)很方便,但仍然保留沒有指定驅(qū)動(dòng)程序字母的路徑。然后這樣的路徑可以(稍后)解析為C:\autoexec.bat或D:\autoexec.bat或......
1 回答

月關(guān)寶盒
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
在 Windows 中,指的是我的\\當(dāng)前驅(qū)動(dòng)器。C:\
不確定如何工作MemoryFileSystemBuilder,但以下代碼
File file = new File("\\test.txt");
final Path truc = file.toPath();
System.out.println("Root: " + truc.getRoot().toString());
System.out.println("Abs: " + truc.isAbsolute());
System.out.println("Abs: " + truc.toAbsolutePath().toString());
給出以下輸出
Root: \
Abs: false
Abs: C:\test.txt
添加回答
舉報(bào)
0/150
提交
取消