在C#中,有没有办法获得嵌入式资源文件的字符串路径引用?

时间:2012-08-09 22:28:17

标签: c# .net

我有一个方法,它接受一个字符串参数,它是文本文件的文件路径。我希望能够传入一个我作为资源嵌入到我的程序集中的文本文件。

有没有办法获取嵌入文本文件的字符串引用,以便它可以作为打开StreamReader的文件路径?

感谢。

2 个答案:

答案 0 :(得分:8)

您可以使用Assembly.GetManifestResourceStream(resource_name_of_the_file)访问文件的流,将其写入TEMP目录并使用此路径。

例如,如果项目中的文件位于“ Resources \ Files \ File.txt ”路径中,则项目的程序集默认名称空间为“ RootNamespace ” ,您可以使用

从此程序集的代码中访问文件的流
Assembly.GetExecutingAssembly().GetManifestResourceStream("RootNamespace.Resources.Files.File.txt")

答案 1 :(得分:5)

  

有没有办法获取嵌入文本文件的字符串引用,以便它可以作为打开StreamReader的文件路径?

不,嵌入资源不是单独的文件,而是嵌入到可执行文件中。但是,您可以使用StreamReader获取可以阅读的信息流。

var name = "...";
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name)) 
  using (var streamReader = new StreamReader(stream)) {
    // Read the embedded file ...
  }