我有一个方法,它接受一个字符串参数,它是文本文件的文件路径。我希望能够传入一个我作为资源嵌入到我的程序集中的文本文件。
有没有办法获取嵌入文本文件的字符串引用,以便它可以作为打开StreamReader的文件路径?
感谢。
答案 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 ...
}