2013-10-28 3 views
0

이 코드를 실행할 때 System.IO.FileNotFoundException 오류가 발생합니다. 코드에서 크게 잘못된 것을 했습니까? 아니면 아직 생각하지 못했던 작은 것이 있습니까?파일이 있고 사용 권한이 부여 된 System.IO.FileNotFoundException

모든 권한이 있으며 파일이 올 바르고 올바른 파일 형식인지 확인했습니다.

public Form1() 
{ 
    InitializeComponent(); 

    DirectoryInfo ImgD = new DirectoryInfo("C:/Users/Dan/ImgDirectory/"); 
    FileInfo[] rgFiles = ImgD.GetFiles("*.jpg"); 
    foreach (FileInfo fi in rgFiles) 
    { 
     listBox1.Items.Add(Path.GetFileNameWithoutExtension(fi.Name)); 
    } 
} 

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    pictureBox1.Image = System.Drawing.Image.FromFile(
     @"C:/Users/Dan/ImgDirectory/" + listBox1.SelectedItem.ToString()); 
} 
+1

확장을 생략 했으므로. 값을 선택할 때 확장을 다시 넣지 않는 것처럼 보입니다. – Measuring

답변

4

확장명없는 파일 이름으로 목록 상자를 채우고 있습니다.

pictureBox1.Image = System.Drawing.Image.FromFile(@"C:/Users/Dan/ImgDirectory/" + listBox1.SelectedItem.ToString()); 

그래서이된다 :

그래서이 줄을 다시 확장을 추가 할 필요가 보조 노트로

pictureBox1.Image = System.Drawing.Image.FromFile(@"C:/Users/Dan/ImgDirectory/" + listBox1.SelectedItem.ToString() + ".jpg"); 

, 오류 이런 종류의 쉽게 감지 할 수 있습니다 경우 디버그 중단 점을 사용하십시오. 그 라인은 당신에게 문제를주는 라인 이었기 때문에 거기에 브레이크 포인트를 놓고 디버그 (F5)를 시작해야합니다. 해당 중단 점에서 코드가 중지되면 @"C:/Users/Dan/ImgDirectory/" + listBox1.SelectedItem.ToString())의 값을 확인할 수 있으며 문제를 발견했을 수 있습니다.

+0

파일 확장자가 제거되었지만 다시 추가되는 것은 사실입니까? – gunr2171

+0

@ gunr2171 - 좋은 지적 –

+0

정말 고마워요! – WhereAreYouSyntax