在WinRT中读取资源文件

在.Net Framework程序中,我们经常以如下方式读取程序集中的资源文件:

    Assembly readAssembly = Assembly.GetExecutingAssembly();
    StreamReader streamReader = new StreamReader(readAssembly.GetManifestResourceStream("Test.txt"));

但是,在WinRT中,这种方式失效了,如果要在WinRT中读取资源文件需要用到如下方式:

  1. 将资源文件的生成方式设置为"内容(Content)"
  2. 通过 Windows.ApplicationModel.Package.Current.InstalledLocation属性 获取根文件夹
  3. 根据相对路径获取资源文件

为了简化操作,我写了一个函数方便使用:

    public static async Task<StorageFile> GetPackagedFileAsync(string fileName)
    {
        StorageFolder installFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
        return await installFolder.GetFileAsync(fileName);
    }

这种方式读取WinRT类库的资源文件也可以使用,不过WinRT类库的资源文件在InstalledLocation下多了一个以其程序集命名的文件夹(如果没有设置前面的第一步操作时看不到),调试的时候可以通过installFolder.GetFoldersAsync()函数查看。

你可能感兴趣的:(文件)