C_Sharp 板


LINE

我寫了一個程式 用來做產品的銷售管理 問題發生在編輯產品資訊的部份 我的想法是這樣 讓使用者選擇產品的圖片 然後先複製一份該圖片到指定資料夾 再呼叫複製的該圖片去做顯示 以下為部份程式碼: //************************************************************** private string copyGraphics(string filePath, string directory) { string destiFilePath = Path.Combine(directory, Path.GetFileName(filePath)); if (Path.GetFullPath(destiFilePath) == filePath) return filePath; else { File.Copy(filePath, destiFilePath, true); return destiFilePath; } } //************************************************************** 問題發生在File.Copy()的部份 假設我先選擇了一張圖片A 再改成選擇圖片B (A B都在指定資料夾外) 也就是先File.Copy(A, ..., ...) 再File.Copy(B, ..., ...) 這時如果我再選擇圖片A,也就是會再執行File.Copy(A, ..., ...)的時候 就會出現IOException 由於另一個處理序正在使用檔案 '.\..\..\data\pics\Jay.jpg',所以無法存取該檔案。 這部份我試了很久都找不到解決辦法 麻煩各位高手指點一下 感激! --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.44.27
1F:→ scottzz:此時目的端的圖片A是否已經在顯示,所以要再copy過去會Erro 04/14 17:21
2F:→ angelfox:回樓上 應該不是 因為再次File.Copy(A)時,正在顯示的是B 04/14 17:39
sorry 經過我繼續測試的結果 一樓的懷疑應該是對的 但是我還是不知道錯在何處 只好放上更多程式碼 if (fileOpen.ShowDialog() == DialogResult.OK) { //copy the picture to the specified directory string picPath = copyGraphics(fileOpen.FileName, fileOpen.InitialDirectory); //update system model updateModelWhenPicChanged(PdtStorage.Products [LBox_products_high.SelectedIndex], picPath); pdtChanged = true; //update visual updateVisualWhenPicChanged(picBox_high, PdtStorage.Products [LBox_products_high.SelectedIndex]); } //************************************************************** private void updateVisualWhenPicChanged(PictureBox picBox, product pdt) { picBox.Image = null; picBox.Image = Image.FromFile(pdt.PicturePath); } //************************************************************** 如果把updateVisualWhenPicChanged()註解掉就沒有前述的問題了 所以問題應該是發生在這 但是這我就不懂了 為什麼做前述操作(A-B-A)的時候 指定資料夾的圖片會在使用中呢? 困擾阿~ ※ 編輯: angelfox 來自: 140.112.44.27 (04/14 18:35)
3F:推 conanist:在顯示的過程中 不要讓使用者點圖片 04/14 18:29
4F:→ conanist:IO也是要花成本的 04/14 18:30
※ 編輯: angelfox 來自: 140.112.44.27 (04/14 18:46)
5F:→ scottzz:MSDN:Image.FromFile 檔案會保持鎖定,直到已處置 Image 04/14 22:15
6F:→ scottzz:Image != null時 ,先picBox.Image.Dispose(); 看看 04/14 22:21
7F:→ angelfox:原來如此 我以為picBox.Image = null就行 原來要dispose 04/15 10:20
8F:→ angelfox:問題已解決了 太感謝各位!! 04/15 10:20







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP