Visual Studio のリソースからテキスト ファイル 'achInfo.txt' にアクセスして読み取ろうとしています。このサイトにはすでにいくつかの回避策がリストされていますが、どれもうまくいかないようです。後で説明する 2 つのエラーのうちの 1 つが表示されるだけです。
これがこれまでの方法のすべてです。
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
ただし、これにより、「値を null にすることはできません」というメッセージがスローされます。また、リソースのアクセス修飾子をパブリックに設定し、ファイルが埋め込みリソースに設定されていることを確認しました。
誰かが私の問題について何か考えを持っていますか?