我正在尝试将File.ReadAllText
用作静态只读字符串。我的问题是我用.NETz编译它,当我的程序启动时它会查找我的字符串,如果不是
发现我得到一个讨厌的例外。有可能通过使用if / else以某种方式解决这个问题吗?
通常我会弹出一个消息框或标签中说明找不到该文件。如果找不到该文件,则使用.Netz我收到错误消息并且程序无法启动。
这是我整个程序中使用的静态字符串
static readonly string config = File.ReadAllText("config.ini");
我正在使用.Netz来包含我的dll。
答案 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;