我有一个方法需要一个字符串参数,它是文本文件的文件路径。我希望能够传入我已经作为资源嵌入到我的程序集中的文本文件。在C#中,是否有一种方法可以获取嵌入资源文件的字符串路径引用?
有什么办法可以获得一个嵌入式文本文件的字符串引用,以便它可以作为打开StreamReader的文件路径吗?
谢谢。
我有一个方法需要一个字符串参数,它是文本文件的文件路径。我希望能够传入我已经作为资源嵌入到我的程序集中的文本文件。在C#中,是否有一种方法可以获取嵌入资源文件的字符串路径引用?
有什么办法可以获得一个嵌入式文本文件的字符串引用,以便它可以作为打开StreamReader的文件路径吗?
谢谢。
您可以使用Assembly.GetManifestResourceStream(resource_name_of_the_file)
访问该文件的流,将其写入到TEMP目录,并使用此路径。
例如,如果你在路径“资源\文件\ FILE.TXT”在你的项目中的文件和项目的组件默认命名空间是“RootNamespace”,你可以从内部访问文件的流这个程序集的代码与
Assembly.GetExecutingAssembly().GetManifestResourceStream("RootNamespace.Resources.Files.File.txt")
是否有任何方法可以获取对嵌入文本文件的字符串引用,以便它可以用作打开StreamReader的文件路径?
不,嵌入式资源不是单独的文件,而是嵌入到可执行文件中。但是,您可以使用StreamReader
获取您可以读取的流。
var name = "...";
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name))
using (var streamReader = new StreamReader(stream)) {
// Read the embedded file ...
}
经过许多小时的搜索,我可以确认这是唯一的方法(afaik)。 – 2016-01-29 14:19:55