c# 中使用image.fromfile(string path)後,提示該檔案正在被另一程序使用***的問題,是因為對應的檔案在一直呼叫 ,其生成的image物件被disponse()前都不會被解除鎖定,這就造成了此問題,就是在這個圖形被解鎖前無法對影象進行操作(比如刪除,修改等操作)。
解決方案:此問題可以使用下面三個方法解決問題.
system.drawing.image image = system.drawing.image.fromfile(filepath);
system.drawing.bitmap bmp = new system.drawing.bitmap(image);
image.dispose();
system.drawing.image img = system.drawing.image.fromfile(filepath);
system.drawing.image bmp = new system.drawing.bitmap(img.width, img.height, img.pixelformat);
system.drawing.graphics g = system.drawing.graphics.fromimage(bmp);
g.drawimage(img, 0, 0);
g.flush();
g.dispose();
img.dispose();
system.io.filestream fs = new system.io.filestream(filepath, filemode.open, fileaccess.read);
int bytelength = (int)fs.length;
byte filebytes = new byte[bytelength];
fs.read(filebytes, 0, bytelength);
//檔案流關閉,檔案解除鎖定
fs.close(); memorystream mstream = new memorystream(filebytes);
image image = image.fromstream(mstream);
mstream.close();
//因為fromstream方法引數應用的流必須一直保持開啟,故而**中有乙個檔案流是向memeorystream流的轉換,從而可以關閉檔案流,保持memorystream流的開啟狀態。在不用mstream時關閉。
public void wipefile(string filename, int timestowrite)
}// 清空檔案
inputstream.setlength(0);
// 關閉檔案流
inputstream.close();
// 清空原始日期需要
datetime dt = new datetime(2037, 1, 1, 0, 0, 0);
file.setcreationtime(filename, dt);
file.setlastaccesstime(filename, dt);
file.setlastwritetime(filename, dt);
// 刪除檔案
file.delete(filename);}}
catch (exception)
}process tool = new process();
tool.startinfo.filename = 「handle.exe」;//占用檔案的程序
tool.startinfo.arguments = filename+" /accepteula";
tool.startinfo.useshellexecute = false;
tool.startinfo.redirectstandardoutput = true;
tool.start();
tool.waitforexit();
string outputtool = tool.standardoutput.readtoend();
string matchpattern = @"(?<=\s+pid:\s+)\b(\d+)\b(?=\s+)";
foreach(match match in regex.matches(outputtool, matchpattern))
C 刪除檔案目錄或檔案
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!刪除檔案和目錄 public class cleaner private static void cleanfiles string dir else else cleanfiles subdir if 0 files.length else di...
某個檔案或目錄無法刪除時
unlocker unlocker是乙個免費的右鍵擴充工具,使用者在安裝後,它便能整合於滑鼠右鍵的操作當中,當使用者發現有某個檔案或目錄無法刪除時,只要按下滑鼠右鍵中的 unlocker 那麼程式馬上就會顯示出是哪一些程式占用了該目錄或檔案,接著只要按下彈出的視窗中的 unlock 就能夠為你的檔案...
c 檔案被占用如何移除 檔案被占用,
檔案被占用,求助 有兩個程式a和b,在a程式的登入窗體啟動b程式 定時自動上傳資料 如果資料自動上傳成功之後,再在a程式中點手工上傳就出出現檔案正在被另一程式 b 占用,在b程式中上傳完之後已經關閉檔案了,怎麼還會出現這個錯誤?求解 a程式frmlogion 啟動自動上傳程式 if file.exi...