2014-02-19 4 views
1

다음은 제 코드입니다. StreamReader를 사용하는 방식으로 openFileDialog를 사용할 수 없습니다. 어떤 아이디어라도 제발.'System.IO.Stream'형식을 'System.IO.StreamReader'형식으로 암시 적으로 변환 할 수 없습니다.

 StreamReader reader = null; 


     OpenFileDialog openFileDialog1 = new OpenFileDialog(); 

     openFileDialog1.InitialDirectory = "c:\\"; 
     openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; 
     openFileDialog1.FilterIndex = 2; 
     openFileDialog1.RestoreDirectory = true; 

     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      try 
      { 
       if ((reader = openFileDialog1.OpenFile()) != null) 
       { 
        using (reader) 
        { 
         textBox2.Text = reader.ReadLine(); 
         textBox3.Text = reader.ReadLine(); 
        } 
       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); 
      } 
     } 

감사합니다.

답변

8

OpenFileDialog.OpenFile() returns a Stream : 또는

if ((var stream = openFileDialog1.OpenFile()) != null) 
{ 
    using (reader = new StreamReader(stream)) 
    { 
     // ... 
    } 
} 

, 그래서 당신은 수동 추한 널 체크 스트림을 취득하여 다음 생략 할 수 있습니다 (null를 언제 돌아가거나 오히려 예외가 발생합니다?) :

using (reader = new StreamReader(openFileDialog1.Filename)) 
{ 
    // ... 
} 
+0

작동하지 않았습니다. 시도했습니다. –

+0

작동하지 않았습니다 오류가 아닙니다. 어떻게 된 거예요? – CodeCaster

+0

동일한 오류가 발생하여 추가 한 후에 아무 것도 변경되지 않았습니다. 내 코드에서 어떻게 입력 할 수 있습니까? 어쩌면 뭔가 잘못된 일을하고있는 것 같습니다. –

관련 문제