0
是否支持Windows或.NET for Windows應用商店應用 API:是否允許我列出爲執行應用程序定義的文件類型關聯?以編程方式識別Windows Store應用程序中的文件類型關聯?
在我的情況,我有一個Windows應用商店的類庫,我打算從各種Windows應用商店的應用程序引用。理想情況下,我希望能夠在類庫方法中讀取應用程序的已定義文件類型關聯。這可能嗎?
是否支持Windows或.NET for Windows應用商店應用 API:是否允許我列出爲執行應用程序定義的文件類型關聯?以編程方式識別Windows Store應用程序中的文件類型關聯?
在我的情況,我有一個Windows應用商店的類庫,我打算從各種Windows應用商店的應用程序引用。理想情況下,我希望能夠在類庫方法中讀取應用程序的已定義文件類型關聯。這可能嗎?
迄今爲止,似乎有訪問的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節點是節點的(深)後裔,其中在同一個清單文件中可以有多個節點。儘管如此,上面的代碼至少應該能夠作爲第一次嘗試的方法。