如何在Windows 8中读取应用程序附带的文件Metro

问题描述:

我有一个随应用程序一起提供的文本文件,我希望在屏幕上显示其内容。任何人都知道如何做到这一点?通常的文件IO似乎不适用于Metro。如何在Windows 8中读取应用程序附带的文件Metro

感谢

不知道你已经尝试过什么,但检查了这一点:

http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.package.installedlocation.aspx

在手的StorageFolder,你有一整套的功能来读取/写入文件。

+2

也可以使用URL如ms-appx://foo.jpg – 2012-07-29 01:46:17

+0

@mleroy:当从Installed位置访问文件时,我得到'System.UnauthorizedAccessException'如何解决它? – Mahantesh 2012-09-06 12:56:44

+0

@Mahantesh:我想你应该发布更多关于你如何访问文件的细节。你有没有在官方文档中找到你想要做的事情? – siger 2012-09-06 17:16:28

在我的应用我读自带的应用程序一个XML文件,你可以调整它来读取任何类型的文件

public class LocalStorage 
{ 
    private const string SyndicationFeedCategoriesFileName = "FeedCategories.xml"; 

    private StorageFile _storageFile; 
    private StorageFolder _storageFolder; 
    public async Task<XmlDocument> Read_categories_from_disk() 
    { 

     try 
     { 
      _storageFolder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Xml"); 
      _storageFile = await _storageFolder.GetFileAsync(SyndicationFeedCategoriesFileName); 

      var loadSettings = new XmlLoadSettings 
            {ProhibitDtd = false, ResolveExternals = false}; 
      return await XmlDocument.LoadFromFileAsync(_storageFile, loadSettings); 
     } 
     catch (Exception) 
     { 
      return null; 
     } 
    } 
} 

查看这里的全部源代码http://metrorssreader.codeplex.com/SourceControl/changeset/view/18233#263004

希望帮助

+0

是的,该示例中最重要的部分是Package.Current.InstalledLocation。这取代了Silverlight和Windows Phone中的Assembly.GetManifestResourceStream。 – 2012-07-30 19:53:25

+0

@Zubair艾哈迈德:我得到'System.UnauthorizedAccessException',同时从安装位置访问文件如何解决它? – Mahantesh 2012-09-06 12:57:01