考虑到应用程序/程序包ID,如何从应用程序URI获取正常的文件路径?
ms-appx:///assets/Logo.png
ms-appdata:///local/Packs/area1.dat
PathCreateFromUrlW
显然不起作用。我认为对于UWP应用程序,存在一种残缺的方法,该方法通过使用IStorageFileStatics::GetFileFromApplicationUriAsync
创建存储文件对象的实例,然后调用IStorageItem::get_Path
来获取 current 应用程序的路径。
答案 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”