生成檔案的時候,如果該資料夾下的同名檔案被開啟(或者被使用),如果這時再生成乙個同名檔案,則會提示檔案正在被占用。
解決方法有兩個,乙個是儲存的檔名改成該資料夾下不存在的(隨機數之類的xxoo都行,只要不存在就可以了),當然這裡指的是該同名檔案是被使用,如果該同名檔案不開啟,生成檔案的時候就直接將其覆蓋了;
另乙個是判斷當前檔案的狀態,如果當前檔案被操作了,則該幹嘛幹嘛,如果沒有被操作,那就生成了。
從網上找了好多資料,今天記錄下,以免將來用到,直接上**,如下:
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
using
system.io;
using
system.runtime.interopservices;
using
system.web.mvc;
namespace
hotelinventory.web.models.repository
intptr vhandle = _lopen(vfilename, of_readwrite | of_share_deny_none);//windows api上面有定義擴充套件方法
if (vhandle ==hfile_error)closehandle(vhandle);//windows api上面有定義擴充套件方法
return
1;//
檔案存在且沒被占用
} }
}
以上**直接呼叫就可以了,path是完整的檔案路徑,命名空間也不要忘了。
判斷乙個檔案是否正在被使用
createfile函式的原型如下 handle createfile lpctstr lpfilename,指向檔名的指標 dword dwdesiredaccess,訪問模式 寫 讀 dword dwsharemode,共享模式 lpsecurity attributes lpsecuritya...
如何判斷乙個檔案是否正在被使用
這段時間在做檔案操作方面的工作.雖然看似簡單,實際卻很煩瑣,容易出現問題,加之測試也不是很方便.有時要向檔案寫入東西,在開啟檔案前不單要判斷檔案是否存在,還要判斷檔案是否被別人使用.如下 1using system 2using system.collections.generic 3using s...
C 判斷乙個檔案是否正在被開啟占用
方法1 開啟看看就知道了 判斷乙個檔案是否正在使用函式 開啟看看就知道了 將要判斷檔案的檔名 bool public static bool isfileinuse string filename catch exception e finally return inuse true表示正在使用,f...