我正在使用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。我无法相信你找不到一个。问题在这里一定会被问到。更难搜索。 –