我正在尝试从 Visual Studio 中的资源中访问和读取文本文件“achInfo.txt”。该站点上已经列出了一些解决方法,但它们似乎都不适合我。他们只是给了我两个错误之一,我稍后会解释。
到目前为止,这是整个方法。
private string[] GetAchMetadata(short element)
{
string[] temp = { "", "" };
string cLine;
try
{
StreamReader sr = new StreamReader(Properties.Resources.achInfo);
while (!sr.EndOfStream)
{
cLine = sr.ReadLine();
if (Microsoft.VisualBasic.Information.IsNumeric(cLine))
{
if (int.Parse(cLine) == element)
{
temp[0] = cLine;
temp[1] = sr.ReadLine();
return temp;
}
}
}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine("There was a problem in collecting data.");
System.Diagnostics.Debug.Write(e);
}
return temp;
}
我的第一个假设是使用Properties.Resources.achInfo
,因为它直接指向有问题的文件。但是,这会引发System.ArgumentException
错误,描述为“路径中的非法字符”。
然后我使用了组装解决方案('Grandma_Lair' 是我的命名空间,不要问。'):
Assembly asm;
asm = Assembly.GetExecutingAssembly();
StreamReader sr = new StreamReader(asm.GetManifestResourceStream("Grandma_Lair.achInfo.txt"));
但是,这会引发一条System.ArgumentNullException
消息“值不能为空”。我还将资源上的访问修饰符设置为公共,并确保文件设置为嵌入式资源。
有人对我的问题有任何想法吗?