C# 如果.txt不';还不存在吗?

C# 如果.txt不';还不存在吗?,c#,winforms,C#,Winforms,我在表单的开头有一段代码,它读取一个已经存在的文件,并根据里面写的内容设置4个文本框的值。如果文件尚未创建,如何继续?任何帮助都将不胜感激 public partial class Form1 : Form { public Form1() { InitializeComponent(); FileStream file = new FileStream("cenaEnergentov.txt", FileMode.Open, FileAcces

我在表单的开头有一段代码,它读取一个已经存在的文件,并根据里面写的内容设置4个文本框的值。如果文件尚未创建,如何继续?任何帮助都将不胜感激

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        FileStream file = new FileStream("cenaEnergentov.txt", FileMode.Open, FileAccess.Read);
        StreamReader sr = new StreamReader(file);
        sr.ReadLine();
        var textLines = File.ReadAllLines("cenaEnergentov.txt");

        foreach (var line in textLines)
        {
            string[] dataArray = line.Split(';');


            textBox1.Text = (dataArray[0]);
            textBox2.Text = (dataArray[1]);
            textBox3.Text = (dataArray[2]);
            textBox4.Text = (dataArray[3]);

        }

    }
如果uper为false,我希望继续使用下面的正常脚本,该脚本以以下开头:

    public void trackBar1_Scroll(object sender, EventArgs e)
    {

..

在打开文件之前,请尝试以下操作:

var filename = "filename.txt";

if (!File.Exists(filename))
{
    File.Create(filename);
}
这并不能解释您在分配值时没有先检查值是否存在的事实。实现这一点也相对简单


FileStream和StreamReader似乎也是冗余的。只需使用File.ReadAllLines即可。

使用简单的if语句

// I edit this line according to your comment
if(File.Exists(String.Concat("cenaEnergentov".ToUpper(), ".txt"))  
 {
   // do your job
}
else
{
  // call appropriate method
  trackBar1_Scroll(this,EventArgs.Empty);  // for example
}
试试这个

if(File.Exists("yourFile.txt"))
{
   //do what you do
}
else
{
  // call appropriate method
}

以前的解决方案可以正常工作。。。然而,他们并没有真正回答这个大问题:

我如何知道何时继续

最好的方法是使用
FileSystemWatcher

var watcher = new FileSystemWatcher(path, ".txt");
watcher.Created += (sender, e) =>
{
  if (e.ChangeType == WatcherChangeTypes.Created)
    initForm();
};
其中
initForm()
是:

void initForm()
{
  if(File.Exists(path))
  {
    // Update form
  }
  else
  {
    var watcher = new FileSystemWatcher(path, ".txt");
    watcher.Created += (sender, e) =>
    {
      if (e.ChangeType == WatcherChangeTypes.Created)
        initForm();
    };
  }
}

您是否在询问如何检查文件是否存在?如何调用函数?如何编写
if
语句?如果上面的文本是正确的,后面的内容是错误的,如何编写if语句。我尝试了if(!File.exists(path)),但没有成功当我打开一个程序时,我需要它来检查是否已经存在一个包含数据的.txt文件。如果不是,我会认为程序是以我在私有的void trackBar\u scroll中的predetimeend数据开始的。我如何调用私有的void trackBar 1\u scroll(objectsender,EventArgs e)?我已经编写了这个.method();但是它说只需要0个参数就可以了,使用
trackBar1\u滚动条(这个,EventArgs.Empty)
就可以了!你们都是圣人!多谢各位。我在网上搜索了一段时间才敢在这里问。只是想澄清一下:这引用了我的form1(它是obejct发送器?),第二个参数是空的,因为前一个参数不执行?我希望它背后有一些逻辑。@Aghi是的,
引用了您的表单,
EventArgs
为空,因为您可能不需要在方法中使用该信息。如果需要,请创建一个EventArgs实例并设置其属性,然后您可以在方法中使用该信息。(尽管它没有太多属性:))但是您可以通过继承EventArgs类来创建自己的EventArgs类)我想我理解它。至少有一部分。由于我刚刚开始学习,所以有很多东西需要学习,但非常感谢您的任何意见,再次感谢您!