如何在Windows 8中的桌面应用程序中访问Metro应用程序的本地存储?

Blu*_*eft 5 .net c# c++ microsoft-metro windows-8

在.Net中是否有可用的API?在Windows API中怎么样?如果没有,有没有人想出一些hackish-way来做到这一点呢?

Pau*_*Uza 3

查找 Windows 8 风格应用程序的本地存储文件夹

http://blog.falafel.com/Blogs/paul-tidwell/2012/08/27/finding-the-local-storage-folder-of-a-windows-8-style-application

Windows 8风格应用程序的路径如下:

C:\Users\{username}\AppData\Local\Packages\Microsoft.BingSports_8wekyb3d8bbwe

有一个新的 Windows API,它使用内部未公开的算法来创建发布者哈希,当附加到包名称时,该哈希将成为系列名称。姓氏看起来像{packagename}_{publisherhash}

如果您想要另一个桌面应用程序或需要在某些应用程序集之间共享它,您可以通过 PowerShell cmdlet 调用 API,如下所示:

(Get-AppxPackage -AllUsers -Name  $name).PackageFamilyName
Run Code Online (Sandbox Code Playgroud)

将其写入注册表,瞧!您的应用程序可以使用Environment.UserName和上面的路径模式来轻松找到您的appx本地存储。