【发布时间】:2013-03-28 14:44:54
【问题描述】:
我看过几篇文章给出了如何从文本文件中读取的示例,以及如何将字符串设为“public”(静态或 const)的示例,但我无法将两者结合在一个“函数”中' 以一种对我来说有意义的方式。
我有一个名为“MyConfig.txt”的文本文件。 其中,我有 2 行。
MyPathOne=C:\TestOne
MyPathTwo=C:\TestTwo
我希望能够在我启动表单时读取该文件,从而使 MyPathOne 和 MyPathTwo 都可以从表单内的任何位置访问,使用类似这样的东西:
ReadConfig("MyConfig.txt");
我现在尝试这样做的方式是这样的,但这是行不通的:
public voice ReadConfig(string txtFile)
{
using (StreamReader sr = new StreamResder(txtFile))
{
string line;
while ((line = sr.ReadLine()) !=null)
{
var dict = File.ReadAllLines(txtFile)
.Select(l => l.Split(new[] { '=' }))
.ToDictionary( s => s[0].Trim(), s => s[1].Trim());
}
public const string MyPath1 = dic["MyPathOne"];
public const string MyPath2 = dic["MyPathTwo"];
}
}
txt 文件可能永远不会超过 5 或 6 行,而且我不会坚持使用 StreamReader 或字典。
只要我可以从任何地方按名称访问路径变量,并且不会添加 400 行代码之类的东西,那么我可以做任何最好、最安全、最快、最简单的事情。
我读过很多帖子,人们说数据应该存储在 XML 中,但我认为这部分实际上并不重要,因为读取文件和获取变量部分几乎都是一样的。除此之外,我宁愿能够使用某人(最终用户)无需理解 XML 即可编辑的纯 txt 文件。 (这当然意味着对空行进行大量检查,路径是否存在等等......我可以做这部分,只是想让这部分先工作)。
我已经阅读了有关将 ReadAllLines 用于数组的不同方法,有人说要创建一个新的单独的“类”文件(我还不太了解……但正在研究它)。主要是我想找到一种“稳定”的方式来做到这一点。 (项目使用的是.Net4和Linq)
谢谢!!
【问题讨论】:
-
你是否有可能有一个类和一个数组或列表来保存文本文件中的行。然后,您可以创建一个可从任何地方访问的单例对象。当你实例化单例对象时读取文件。 - msdn.microsoft.com/en-us/library/ff650316.aspx
-
您当前的代码有什么问题?
标签: c# global-variables text-files