檔案「d:\demo222\demo\chnlmangr\listener.tar」正由另一程序使用,因此該程序無法訪問該檔案。
在**中對「listener.tar」檔案做解壓操作,在執行完後也做了關閉操作,但不關閉程式再次執行解壓操作就提示
該檔案已被其他程式占用問題。
開始使用**:
filestream fr = file.openread(strfilepath);
//do something ……
fr.close();
測試了多種情況:
1、 filestream fr = file.openread(strfilepath);
streamreader sr = new streamreader((system.io.stream)fr, system.text.encoding.default);
2、streamreader sr = file.opentext(strfilepath);
3、 filestream fr = new filestream(strfilepath, filemode.open, fileaccess.read, fileshare.readwrite);
streamreader sr = new streamreader(fr, system.text.encoding.default);
正確讀取。
總結:這樣的情況,不單要用唯讀方式開啟檔案,而且需要共享鎖。還必須選擇flieshare方式為readwrite。使用完也必須關閉。
C 讀取被程序占用的檔案
最近所做的乙個專案中,需要實現乙個讀取日誌檔案的功能,開始我使用的讀取日誌檔案的方法如下 在讀取歷史日誌檔案時,沒有問題,但是在讀取當前正在寫的日誌檔案時,就出現問題了。出現以下錯誤 檔案 f autoupdater log logfile20090422.txt 正由另一程序使用,因此該程序無法訪...
C 讀取被程序占用的檔案
檔案 d log cargoabc logfilecargoabc.txt 正由另一程序使用,因此該程序無法訪問該檔案。logfilecargoabc.txt是乙個日誌檔案,不定時都可能由另外的程式對它進行日誌記錄寫入操作。今需要對日誌檔案讀取出來,顯示在日誌查詢裡,需要用到了io流。1 files...
C 讀取被程序占用的檔案
檔案 d log cargoabc logfilecargoabc.txt 正由另一程序使用,因此該程序無法訪問該檔案。logfilecargoabc.txt是乙個日誌檔案,不定時都可能由另外的程式對它進行日誌記錄寫入操作。今需要對日誌檔案讀取出來,顯示在日誌查詢裡,需要用到了io流。1 files...