我正在使用Windows C++應用程序,其中獲得的URI類似於file:///C:/test 1/file.foo
。現在我想要例如用ifstream
打開該URI。將URI轉換爲路徑
Windows上是否有任何C/C++ API可用於轉換此類路徑?
我的Google Foo今天似乎很弱。
我正在使用Windows C++應用程序,其中獲得的URI類似於file:///C:/test 1/file.foo
。現在我想要例如用ifstream
打開該URI。將URI轉換爲路徑
Windows上是否有任何C/C++ API可用於轉換此類路徑?
我的Google Foo今天似乎很弱。
有multiple文件URI 「版本,」 所以你不應該parse它自己,一些the APIs are broken爲好。
如果您只是想要一個Windows樣式路徑,請致電PathCreateFromUrl
。
如果您不想轉換路徑,那麼您必須使用CreateURLMonikerEx
或SHParseDisplayName
(帶有綁定上下文),但最終會以Windows IStream
代替。
有PathCreateFromUrl():
https://msdn.microsoft.com/en-us/library/bb773581(v=vs.85).aspx
只要刪除'「file:///」'部分?或者得到其餘的子串?如果URI不是以'「file:///」'開頭的,那麼它不應該作爲文件打開。 –
然後有'%'轉義和可能的存在檢查。這並不像你想象的那麼簡單。 – abergmeier
有很多的庫和函數會解碼URI。我無法相信你找不到一個。問題在這裏一定會被問到。更難搜索。 –