我在这里尝试了多种解决方案,但没有一个我可以开始工作。我要做的就是从我的资源文件夹而不是实际的本地文件夹中读取一个文本文件。
文件名:TextFile.txt
设置为嵌入式资源。
有效的“本地文件”代码:
string[] spaces = File.ReadAllLines("C:\\Users\\a\\source\\repos\\a\\bin\\Debug\\TextFile.txt");
当前代码:
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "TextFile.txt";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
{
string result = reader.ReadToEnd();
}
string[] spaces = File.ReadAllLines(resourceName);
但我收到以下错误:
System.ArgumentNullException: '值不能为空。参数名称:流'
在这条线上:
using (StreamReader reader = new StreamReader(stream))
EDIT1根据链接尝试了这个(为什么在调用GetManifestResourceNames时资源名称存在时GetManifestResourceStream返回null?)和这个NULL ERROR:
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "programname.TextFile.txt";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
{
string result = reader.ReadToEnd();
}
string[] spaces = File.ReadAllLines(resourceName);
同样的错误,我是否将命名空间位放在错误的位置?
编辑2,试过这个:
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "programname.Resources.TextFile.txt";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
{
string result = reader.ReadToEnd();
}
string[] spaces = File.ReadAllLines(resourceName);
新错误:
System.IO.FileNotFoundException: '找不到文件'C:\Users\a\source\repos\a\bin\Debug\programname.Resources.TextFile.txt'。'
位置TextFile.txt
programname
Resources
TextFile.txt