以编程方式识别Windows应用商店应用中的文件类型关联

时间:2013-03-22 11:39:12

标签: c# configuration microsoft-metro windows-store-apps file-type

Windows .NET for Windows Store应用 API是否支持:s允许我列出为执行应用定义的文件类型关联?

在我的场景中,我有一个 Windows Store类库,我打算从各种 Windows应用商店应用中引用它。理想情况下,我希望能够在类库方法中读取应用程序的已定义文件类型关联。这可能吗?

1 个答案:

答案 0 :(得分:0)

到目前为止,似乎没有内置的方法来访问 Windows应用商店应用的文件类型关联,但是由于this我已经能够实现一种解决方法博客文章。

显然, Package.appxmanifest 文件将转换为随部署应用程序一起分发的文件 AppxManifest.xml 。在许多方面,清单文件包含应用程序的用户定义文件类型关联,因此可以使用简单的 XML 查询来获取这些定义:

var document = XDocument.Load("AppxManifest.xml");
var xname = XNamespace.Get("http://schemas.microsoft.com/appx/2010/manifest");

var fileTypeElements = 
    document.Descendants(xname + "FileTypeAssociation").Descendants().Descendants();
var supportedFileExtensions = 
    fileTypeElements.Select(element => element.Value).ToArray();

此代码当然可以进一步微调,例如 FileTypeAssociation 节点是 Application 节点的(深层)后代,其中可能有多个一个在同一个清单文件中。尽管如此,上述代码至少应该能够作为第一次尝试的方法。