2017-03-17 183 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代替。