2013-10-07 114 views
0

幾周前我問了一個類似的問題,在這個主題Write and Read from a file和我的問題得到了回答,但現在我試圖讀取文件並使用if函數,但此刻我只能閱讀從文本塊按下按鈕讀取文件並傳輸到txtblock,所以我想知道如何能夠讀取不使用這種方式。此刻此刻。閱讀文件c#windows 8

private async Task ReadFile() 
    { 
     // Get the local folder. 
     StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder; 

     if (local != null) 
     { 
      // Get the DataFolder folder. 
      var dataFolder = await local.GetFolderAsync("level"); 

      // Get the file. 
      var file = await dataFolder.OpenStreamForReadAsync("level.txt"); 

      // Read the data. 
      using (StreamReader streamReader = new StreamReader(file)) 
      { 
       this.textBlock1.Text = streamReader.ReadToEnd(); 
      } 

     } 
    } 


    private async void Button_Click(object sender, RoutedEventArgs e) 
    { 
     await ReadFile(); 

     if (textBlock1.Text == "test") 
      star2.Visibility = Visibility.Visible; 
    } 
+0

你的問題是_extremely_不清楚。你想寫什麼? – SLaks

+0

我假設你發佈的代碼不工作?它在哪裏失敗? – canhazbits

+0

嗨,真的很抱歉!我已經在這個文件上寫了一些東西,我只想現在就可以讀取它,而不需要將它傳遞給txtblock,這樣我就可以使用if函數來確認x == x。 @canhazbits它完美的工作,但正在工作的方式,我解釋了SLaks –

回答

1

花了一秒鐘來弄清楚我認爲你的意思。

 using (StreamReader streamReader = new StreamReader(file)) 
     { 
      this.textBlock1.Text = streamReader.ReadToEnd(); 
     } 

試試這個:

 string readtxt; 
     using (StreamReader streamReader = new StreamReader(file)) 
     { 
      readtxt = streamReader.ReadToEnd(); 
     } 

現在你將有一個字符串變量「readtxt」,在任何字符串類型將所有的工作方式,幷包含您的文件的內容。

+0

謝謝,但將可能在這種情況下使用它:if(readtxt ==「x」) star2.Visibility = Visibility.Visible; ?對不起,問我,我是一個在C#初學者! –

+0

只要您的ReadFile方法返回值,它應該是。有關通過異步返回值的示例,請查看http://msdn.microsoft.com/en-us/library/hh524395.aspx。 – Dweeberly

+0

好的,謝謝我會研究它並嘗試去做,但是你有沒有其他建議可以用我不同的方式做我想做的事情?或者這是唯一的方法? –

1
private async Task ReadFile() 
{ 
    // Get the local folder. 
    StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder; 

    if (local != null) 
    { 
     // Get the DataFolder folder. 
     var dataFolder = await local.GetFolderAsync("level"); 

     // Get the file. 
     var file = await dataFolder.OpenStreamForReadAsync("level.txt"); 

     string = readtext 
     // Read the data. 
     using (StreamReader streamReader = new StreamReader(file)) 
     { 
      readtext = streamReader.ReadToEnd(); 
     } 
     if (readtxt == "x") 
       x do something 
    } 
} 

感謝@Dweeberly幫助