2014-01-21 85 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(); 
    }; 
    } 
} 
相關問題