程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 《轉載》文件正由另一進程使用,該進程無法訪問該文件,解決方法,《轉載》無法訪問

《轉載》文件正由另一進程使用,該進程無法訪問該文件,解決方法,《轉載》無法訪問

編輯:C#入門知識

《轉載》文件正由另一進程使用,該進程無法訪問該文件,解決方法,《轉載》無法訪問


原文地址:http://www.cnblogs.com/enjoyprogram/p/4344799.html

 

異常提示:
“文件正由另一進程使用,該進程無法訪問該文件”。
打開一個文件後,嘗試重新打開一次該文件,或者打開該文件後想對該文件進行其他操作的時候,就容易出現這個錯誤提示。
通常造成該錯誤的原因是構造System.IO.FileStream時參數設置有問題。
一般習慣直接使用:
FileStream fs = new FileStream(fileName, FileMode.Open)
這個方法打開文件的時候是以只讀共享的方式打開的,但若此文件已被一個擁有寫權限的進程打開的話,就無法讀取了,
因此需要使用
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
設置文件共享方式為讀寫:FileShare.ReadWrite,這樣的話問題就解決了。

 

將圖片文件加載到Picturebox中後若要刪除或覆蓋該圖片文件也會出現上面異常提示

pictureBox1.Image = Image.FromFile(sFile);//用此種方式加載圖片,關閉頁面後該路徑的文件可能會仍被線程占用,導致無法刪除、覆蓋

 

 pictureBox1.ImageLocation = sFile;及下面方式


FileStream fs = new FileStream(sFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
MemoryStream ms = new MemoryStream(bytes);
Bitmap img = new Bitmap(ms);
pictureBox1.Image = img;

則不會再繼續占用該文件。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved