如何读取构建操作标记为嵌入/资源的文件?

时间:2014-11-28 07:58:30

标签: c#

我有C#项目,我在解决方案中添加了几个html文件,并将其操作标记为“资源”或“嵌入资源”(“或” - 因为我在测试时没有看到差异。)

现在我想读一读。

当我运行此代码时:

Assembly.GetExecutingAssembly().GetManifestResourceNames()

我在结果中得到3个资源名称:

MyApp.g.resources
MyApp.Properties.Resources.resources
MyApp.Resource.resources

我首先访问,找到了所需的文件名,我这样读了:

    private static byte[] getResource(string name)
    {
        var assembly = Assembly.GetExecutingAssembly();
        string resName = assembly.GetName().Name + ".g.resources";
        using (var stream = assembly.GetManifestResourceStream(resName))
        {
            using (var reader = new System.Resources.ResourceReader(stream))
            {
                string res_type;
                byte[] data;
                reader.GetResourceData(name,out res_type,out data);
                return data;
            }
        }
    }

结果我几乎得到了我想要的东西 - 文件的内容,但是在开始时有一些垃圾字节。

如何正确地做到这一点?

更新:垃圾序列为 - 6,0,0,239,187,191。三个最后一个字节构成BOM。

0 个答案:

没有答案