2017-03-17 201 views
0

我正在使用Windows C++應用程序,其中獲得的URI類似於file:///C:/test 1/file.foo。現在我想要例如用ifstream打開該URI。將URI轉換爲路徑

Windows上是否有任何C/C++ API可用於轉換此類路徑?

我的Google Foo今天似乎很弱。

+3

只要刪除'「file:///」'部分?或者得到其餘的子串?如果URI不是以'「file:///」'開頭的,那麼它不應該作爲文件打開。 –

+0

然後有'%'轉義和可能的存在檢查。這並不像你想象的那麼簡單。 – abergmeier

+1

有很多的庫和函數會解碼URI。我無法相信你找不到一個。問題在這裏一定會被問到。更難搜索。 –

回答

2

multiple文件URI 「版本,」 所以你不應該parse它自己,一些the APIs are broken爲好。

如果您只是想要一個Windows樣式路徑,請致電PathCreateFromUrl

如果您不想轉換路徑,那麼您必須使用CreateURLMonikerExSHParseDisplayName(帶有綁定上下文),但最終會以Windows IStream代替。