作者party100046 (陳靖仇)
看板C_Sharp
標題[問題] 找不到檔案?
時間Fri Aug 6 12:47:20 2010
最近有個問題一直想不出來,想請版上強力的大大可以幫助我^^"
我的問題是,按下listbox裡面的item之後,我的picturebox會顯示出我所按下的檔案
但是我按下listbox的檔案之後,一直出現FileNotFoundException的例外
後來有爬文但還是搞不太懂,應該是相對路徑的問題。
程式碼:
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ddDialog = new OpenFileDialog();
string assemblyLocation = Assembly.GetExecutingAssembly().Location;
string dd_relativePath = Path.Combine(assemblyLocation, "../../../../Images");
string contentPath = Path.GetFileName(dd_relativePath);
ddDialog.InitialDirectory = contentPath;
ddDialog.Title = "pic_load";
ddDialog.Filter = "Picture Files (*.bmp;*.jpg)|*.bmp;*.jpg|" +
"BMP Files (*.bmp)|*.bmp|" +
"JPG Files (*.jpg)|*.jpg|" +
"All Files (*.*)|*.*";
if (ddDialog.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(ddDialog.FileName);
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
listBox2.Items.Add(Path.GetFileName(ddDialog.FileName));
System.IO.Path.GetFileName(ddDialog.FileName);
}
}
private void listBox2_SelectedValueChanged(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromFile(((ListBox)sender).SelectedItem.ToString());
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
} 上面這段程式碼會出現FileNotFoundException的例外。
如果是相對路徑的問題,那是我所指定的位置出錯嗎?
"../../../../Images" ← ../ 與 ./ 的差別在那?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.77.217
※ 編輯: party100046 來自: 123.204.77.217 (08/06 12:48)
※ 編輯: party100046 來自: 123.204.77.217 (08/06 14:08)
→ u9211138:設中斷點看一下 08/06 18:21
→ u9211138:((ListBox)sender).SelectedItem.ToString() 的值 08/06 18:21
→ u9211138:應該不是你想的那樣~ 08/06 18:21
推 F23ko:同樓上...... 08/06 19:00
→ party100046:中斷點的訊息 - 名稱 'SelectedItem' 不存在於目前內 08/06 19:25
→ party100046:內容中 所以是Images的位置放錯嗎? 08/06 19:25
→ u9211138:如果不用SelectedValueChanged 08/07 16:45
→ u9211138:改用SelectedIndexChanged這個事件呢? 08/07 16:46
→ u9211138:直覺上你SelectedItem.ToString()應該只有回傳檔名而已 08/07 16:46
→ u9211138:如果只有檔名的話開檔似乎會出問題 08/07 16:47
→ u9211138:(以上為憑空想像...沒有實際測試) 08/07 16:47
→ party100046:後來改用SelectedIndexChanged還是一樣:)" 08/08 12:25
→ party100046:後來先暫時用絕對路徑了:) 感謝解答 08/08 16:37