【问题标题】:.NET: Open files, which are embedded in a resource file.NET:打开文件,嵌入在资源文件中
【发布时间】:2010-10-20 08:57:56
【问题描述】:

如何打开嵌入在资源文件中的文件,例如硬盘上的文件(具有绝对路径)?

【问题讨论】:

  • 开放是什么意思?你的意思是加载二进制内容?
  • 这有点令人困惑。您是在谈论访问嵌入式资源还是硬盘上的资源?

标签: c# .net


【解决方案1】:

假设您将test.xml 文件嵌入到程序集中。您可以使用GetManifestResourceStream 方法获取指向内容的流:

class Program
{
    static void Main()
    {
        var assembly = Assembly.GetExecutingAssembly();
        using (var stream = assembly.GetManifestResourceStream("ProjectName.test.xml"))
        using (var reader = new StreamReader(stream))
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}

这样文件的内容被读入内存。您也可以将其存储到硬盘,然后通过绝对路径访问,但这可能不是必需的,因为您已经拥有文件的内容。

【讨论】:

  • 您需要在文件名之前包含项目的默认命名空间,而不是项目名称。
  • 如果文件不作为嵌入资源存在,您的“流”变量将为空。这将在创建 StreamReader 时导致异常。
猜你喜欢
  • 2017-11-18
  • 2012-06-26
  • 2011-04-27
  • 1970-01-01
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
相关资源
最近更新 更多