这个很奇怪。
每当尝试访问我程序的某个区域中的文件时(如果确定该文件是否存在,则嵌套在一起),它会抛出System.IndexOutOfRangeException
。 File.Exists
甚至不应该扔掉它!这是我的剧本。
if (Directory.Exists("SA_Data") && File.Exists("SA_Data/stock_names.txt"))
{
Array.Clear(Globals.stocks, 0, Globals.stocks.Length);
Globals.stocks[1] = "empty";
// **********************************************
// This should return true. It raises an exception
bool whatever = File.Exists("SA_Data/stock_names.txt");
// **********************************************
// I get the same exception in File.ReadAllLines, below
foreach (string stock in File.ReadAllLines("SA_Data/stock_names.txt"))
{
MessageBox.Show(stock);
if(Globals.stocks[1] != "empty")
{
Array.Resize(ref Globals.stocks, Globals.stocks.Length);
Globals.stocks[Globals.stocks.Length - 1] = stock;
}
else
{
Globals.stocks[0] = stock;
}
}
}
该文件存在,不为空,未打开且具有要打开的适当权限。发生了什么事?
谢谢, -Dylan
答案 0 :(得分:0)
数组调整大小不是你应该做的一般事情。所以,我建议改为:
if (Directory.Exists("SA_Data") && File.Exists("SA_Data/stock_names.txt"))
{
var stocks = new List<string>();
foreach (string stock in File.ReadAllLines("SA_Data/stock_names.txt"))
{
MessageBox.Show(stock);
stocks.Add(stock);
}
Global.stocks = stocks.ToArray();
}