如何将应用程序URI转换为普通文件路径?

时间:2019-03-23 13:23:19

标签: c++ winapi windows-10

考虑到应用程序/程序包ID,如何从应用程序URI获取正常的文件路径?

  

ms-appx:///assets/Logo.png
  ms-appdata:///local/Packs/area1.dat

PathCreateFromUrlW显然不起作用。我认为对于UWP应用程序,存在一种残缺的方法,该方法通过使用IStorageFileStatics::GetFileFromApplicationUriAsync创建存储文件对象的实例,然后调用IStorageItem::get_Path来获取 current 应用程序的路径。

1 个答案:

答案 0 :(得分:2)

有一种解决方法:

您可以使用GetPackagePathByFullName使用PACKAGE_ID获取UWP应用程序的安装路径。 路径将像这样C:\Program Files\WindowsApps\Microsoft.SDKSamples.ListView.CS_1.0.0.0_x64__8wekyb3d8bbwe\

如果要在资产下找到文件路径,则该路径将为C:\Program Files\WindowsApps\Microsoft.SDKSamples.ListView.CS_1.0.0.0_x64__8wekyb3d8bbwe\Assets\Logo.png

示例代码:

GetPackagePathByFullName(L"Microsoft.SDKSamples.ListView.CS_1.0.0.0_x64__8wekyb3d8bbwe", &path, buffer);

更多参考资料:“ Package query API