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

标签 c# c++ .net windows-8 microsoft-metro

.Net 中是否有可用的 API?在 Windows API 中呢?如果没有,有没有人想出一些骇人听闻的方法来做到这一点?

最佳答案

查找 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\{用户名}\AppData\Local\Packages\Microsoft.BingSports_8wekyb3d8bbwe

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

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

(Get-AppxPackage -AllUsers -Name  $name).PackageFamilyName

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

关于c# - 如何在 Windows 8 的桌面应用程序中访问 Metro 应用程序的本地存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13144479/

相关文章:

c# - 在MVC中通过AJAX进行异常处理的最佳和最简便方法是什么?

c++ - 为什么这行得通?不合逻辑的数组访问

c++ - 当我有两个对象时如何重载运算符<<??(有关系)

c++ - std::map + std::tr1::bind + 标准算法是否值得?

.net - 如何在网关模式下使用NServiceBus

c# - 无法将 List<string> 从方法 1 传递到方法 2

c# - 如何使用 EF6 和 SQL Server 捕获 UniqueKey Violation 异常?

c# - 防止在 DataGridView 中选择单元格

c# - 创建一个新的 AnonymousType 实例

c# - 链接两个函数 () -> Task<A> 和 A->Task<B>