我正在處理的應用程序涉及訪問網絡文件共享上的文件,我們使用URI來指定文件的位置。file:URIs和斜線
我對文件的理解:URI是它們應該採取file://
+ 的路徑。在Windows網絡共享的情況下,此路徑類似於\\servername\dir\file
,因此生成的URI將變爲file:////servername/dir/file
。
這似乎是對Java的URI class被偉大的工作,但在Win32 API似乎需要一個file://servername/dir/file
風格的URI,其中Java的拒絕,因爲它「有一個授權組成部分」。
我能正確理解網絡共享URI嗎?有沒有另一種方式來指定沒有Java抱怨權限的路徑?
編輯:我們希望能夠將路徑存儲爲URI,以便使用URI的scheme-part部分來指定其他位置(例如file:和other :)。但正如指出的那樣,它看起來像Java可能只是有URI的自己的問題......
感謝您的快速響應。第二個鏈接特別有用。儘管對我來說整個路徑將存儲在URI的'路徑'部分中是有意義的,但我可以看到Java做到這一點有點不一致,所以我會確保注意這一點。 – Sammy1Am 2009-12-14 17:28:16
事實上,據我所知,文件URL方案甚至不需要雙斜線,但只需要一個斜線。儘管在野外都經常看到。 – hippietrail 2012-08-08 13:57:06
https://tools.ietf.org/html/rfc3986#section-3「當權限不存在時,路徑不能以兩個斜槓字符開頭」 – 2016-07-21 04:46:41