C# 使用File.ReadAllText的静态字符串
我试图将C# 使用File.ReadAllText的静态字符串,c#,.net,windows,.net-3.5,C#,.net,Windows,.net 3.5,我试图将File.ReadAllText用作静态只读字符串。我的问题是我正在用.NETz编译它,当我的程序启动时,它会查找我的字符串,如果不是 我发现我有一个严重的例外。是否可以通过某种方式使用if/else来绕过这个问题 通常我会让它弹出一个消息框或标签,说明找不到文件。如果找不到文件,使用.Netz,我会收到一条错误消息,程序不会启动 这是在整个程序中使用的静态字符串 static readonly string config = File.ReadAllText("config.ini")
File.ReadAllText
用作静态只读字符串。我的问题是我正在用.NETz编译它,当我的程序启动时,它会查找我的字符串,如果不是
我发现我有一个严重的例外。是否可以通过某种方式使用if/else来绕过这个问题
通常我会让它弹出一个消息框或标签,说明找不到文件。如果找不到文件,使用.Netz,我会收到一条错误消息,程序不会启动
这是在整个程序中使用的静态字符串
static readonly string config = File.ReadAllText("config.ini");
我正在使用.Netz包含我的dll。将工作移动到静态构造函数,而不是与声明内联。然后,添加
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?
}
}
}
请注意,除了在路径中找不到文件之外,还有读取文件可能失败的原因。您可能也想考虑一下其中的一些。 ,而不是将它与声明进行内联,将工作移到静态构造函数。然后,添加
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?
}
}
}
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;
请注意,除了在路径中找不到文件之外,还有读取文件可能失败的原因。你可能也想考虑一下其中的一些。抛出的异常是什么?使用一个尝试捕捉,然后看看例外不同于论坛站点,我们不使用“谢谢”,或“任何帮助赞赏”,或签名。请参阅“.引发的异常是什么?使用try-catch然后查看异常类似于论坛网站,我们不使用“感谢”或“感谢任何帮助”或签名。请参阅”。或者如果是
FileNotFoundException
,请先检查该文件是否与file.exists
一起实际存在。我知道该文件不存在。问题是如何处理该文件。@user1908061:在打开该文件之前,检查该文件是否存在不会阻止它被其他线程删除。看@chrissinclair,我不知道它属于哪里。我已经编辑了主要问题,并添加了我的内容。@user2190928:现在在您的表单中还可以。虽然我更喜欢将它移动到某种类型的专用Config
类,而不是将它嵌入到Form1
对象中。或者在FileNotFoundException
的情况下,检查该文件是否与file.exists
一起实际存在。我知道该文件不存在。问题是如何处理该文件。@user1908061:在打开该文件之前,检查该文件是否存在不会阻止它被其他线程删除。看@chrissinclair,我不知道它属于哪里。我已经编辑了主要问题,并添加了我的内容。@user2190928:现在在您的表单中还可以。尽管我更喜欢将它移动到某种专用的Config
类,而不是将它嵌入到Form1
对象中。
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;