使用File.ReadAllText的静态字符串

时间:2013-07-17 12:26:25

标签: c# .net windows .net-3.5

我正在尝试将File.ReadAllText用作静态只读字符串。我的问题是我用.NETz编译它,当我的程序启动时它会查找我的字符串,如果不是 发现我得到一个讨厌的例外。有可能通过使用if / else以某种方式解决这个问题吗?

通常我会弹出一个消息框或标签中说明找不到该文件。如果找不到该文件,则使用.Netz我收到错误消息并且程序无法启动。

这是我整个程序中使用的静态字符串

static readonly string config = File.ReadAllText("config.ini");

我正在使用.Netz来包含我的dll。

2 个答案:

答案 0 :(得分:5)

不是将其与声明内联,而是将工作移至静态构造函数。然后,根据您的需要添加try/catch块以处理错误情况变得微不足道:

public class MyClass
{
    static readonly string config;

    static MyClass()
    {
        try
        {
            config = File.ReadAllText("config.ini");
        }
        catch (FileNotFoundException)
        {
            //do something else
            //use a default configuration?
            //report to the user?
            //crash and burn?
        }
    }
}

请注意,有many reasons为什么读取文件可能会失败,除非在路径中找不到。您可能还想考虑抓住其中一些。

答案 1 :(得分:0)

public partial class Form1 : Form
{
    public class configi
    {
        public static string config;
        static configi()
        {
            try
            {
                config = File.ReadAllText("config.ini");

            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine(e.Message);
                return;
            }
        }
    }
    public Form1()
    {
        InitializeComponent();

    }

    static string username = (Environment.GetEnvironmentVariable("USERNAME"));
    static string Backups = configi.config + @"\" + username + @"\" + "Backups" + @"\";
    static string items;