如果我知道应用程序/包ID,我如何从应用程序URI获取正常的文件路径?
MS-APPX:///assets/Logo.png MS-APPDATA:///local/Packs/area1.dat
PathCreateFromUrlW
显然不起作用。我认为对于UWP应用程序,通过使用IStorageFileStatics::GetFileFromApplicationUriAsync
创建存储文件对象的实例然后调用IStorageItem::get_Path
,有一种残缺的方法来获取当前应用程序的路径。
有一个解决方法:
您可以使用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”