2014-11-12 2 views
0

채팅 프로그램에서 다른 사용자에게 파일을 보내야하지만 문제가 있습니다. 내 Visual Studio 파일을 보내려고 할 때 주어진 경로의 형식이 지원되지 않는 예외가 발생했습니다.system.notsupportedexception 주어진 경로 형식이 지원되지 않습니다.

private void button3_Click(object sender, EventArgs e) 
{ 
    Stream myStream = null; 

    OpenFileDialog openFileDialog1 = new OpenFileDialog(); 

    openFileDialog1.InitialDirectory = "A:\\"; 
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; 
    openFileDialog1.FilterIndex = 2; 
    openFileDialog1.RestoreDirectory = true; 
    openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer).ToString(); 

    if (openFileDialog1.ShowDialog() == DialogResult.OK) 
    { 
     try 
     { 
      if ((myStream = openFileDialog1.OpenFile()) != null) 
      { 
       using (myStream) 
       { 
        byte[] bytes = File.ReadAllBytes(openFileDialog1.ToString()); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error: Could not read file from disk. Original error:"+ ex.Message); 
     } 
    } 
} 

도와주세요.

+1

'openFileDialog1.ToString()'은 선택된 파일의 경로를 반환하지 않습니다.'System.Windows.Forms.OpenDialog' (객체의 유형)를 반환 할 것입니다. 당신은'openDialog1.FileName'을 원한다. – Tim

+0

경로 파일을 얻은 후에 예외가 발생했습니다 –

답변

1

시도 File.ReadAllBytes(openFileDialog1.FileName);.

사용자가 openFileDialog1.ToString()을 사용하고 있는데, 선택한 파일의 경로가 아닌 "System.Windows.Forms.OpenFileDialog"와 같은 것을 반환합니다.

+0

문자열 변수에 opendialog1 값을 저장한다고 가정합니까? –

+0

어떤 가치가 있습니까? 'openDialog1'은'OpenFileDialog' 클래스의 * 인스턴스 *입니다 - 여러 값 (속성)을 가지고 있습니다. – Tim

+0

나는 이것을 바이트 배열로 변환하기 위해 pathfile을 찾을 것이다. 하지만 어떻게이 경로 파일을 얻을지 모르겠다. –

관련 문제