亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Windows 下表示以 `\` 開頭但沒有磁盤驅動器的 `Path`

在 Windows 下表示以 `\` 開頭但沒有磁盤驅動器的 `Path`

收到一只叮咚 2023-05-17 15:47:02
我沒有 Windows 副本,但想知道在 Java 中表示路徑(例如\autoexec.bat在 Windows 下)的行為和推薦用法?autoexec.bat從語義上講,這樣的路徑將代表任何文件系統根上的文件。C:\因此,在表示文件之前,需要根據表示磁盤驅動器(例如 )的路徑對其進行解析。從這個意義上說,它不是絕對的。但是,我想它也沒有根組件。在Windows 上運行JVM 時可以創建這樣的路徑嗎?如果是這樣,將getRoot()返回什么isAbsolute()?我使用Memory File System嘗試了以下代碼,但這會拋出InvalidPathException:“路徑不能以索引 1 處的分隔符開頭:\truc”。這是否忠實地反映了 Windows 下的行為,還是這個特定庫的怪癖?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 時(很久以前)。創建這樣的路徑以標記該路徑是“絕對的”(在以反斜杠開頭的意義上,因此不是相對于文件夾的意義上)會很方便,但仍然保留沒有指定驅動程序字母的路徑。然后這樣的路徑可以(稍后)解析為C:\autoexec.bat或D:\autoexec.bat或......
查看完整描述

1 回答

?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

在 Windows 中,指的是我的\\當前驅動器。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


查看完整回答
反對 回復 2023-05-17
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號