2014-01-21 86 views
1

我在读取已存在的文件的表单的开始处获得此代码,并相应地将它设置为4个文本框的值。如果文件尚未创建,我该如何继续?任何帮助将非常感激。如何在.txt不存在的情况下打开程序?

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是假的,我想用普通脚本向下跌破这一着手开始于:

public void trackBar1_Scroll(object sender, EventArgs e) 
    { 

......

+8

你问如何检查文件是否存在?如何调用一个函数?如何编写'if'语句? – SLaks

+0

如何编写if语句,如果上面的文本是正确的,后面是错误的。我尝试过使用if(!File.exists(path))但没有成功 – Aghi

+0

当我打开一个程序时,我需要它来检查数据是否已经存在一个存在文件.txt。如果没有,我会谎言,该程序开始与我的私人无效的预先修正的数据trackBar_scroll – Aghi

回答

2

使用一个简单的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 
} 
+0

我将如何调用我的私人无效trackBar1_scroll(对象发件人,EventArgs e)?我写了this.method();但它说它需要0个参数 – Aghi

+1

使用'trackBar1_Scroll(this,EventArgs.Empty)' –

+0

这工作!你们都是圣人!万分感谢。在我敢于在这里问问之前,我一直在寻找网络。只是为了澄清:这反映了我的form1(这是一个obejct发件人?),第二个参数是空的,因为前一个不执行?我想要一些背后的逻辑。 – Aghi

0

试试这个你打开之前该文件:

var filename = "filename.txt"; 

if (!File.Exists(filename)) 
{ 
    File.Create(filename); 
} 

这不会说明你分配值而不检查它们是否存在的事实首先。实现这个也是相对微不足道的。

它似乎也是FileStream和StreamReader是多余的。只需使用File.ReadAllLines。

0

试试这个

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

以前的解决方案将工作好......但他们并没有真正回答的大问题:

我如何知道何时可以继续?

最好的方法是使用一个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(); 
    }; 
    } 
} 
相关问题