C 讀取被程序占用的檔案

2021-06-16 22:14:17 字數 766 閱讀 7732

檔案「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...