在C#中,如果我們嘗試讀取某個被其它進程以寫模式打開的文件件時,會遇到IO異常:
有的時候,這個被其進程占用的異常是比較令人煩心的。最近我寫一個解析excel的程序的時候,由於這個異常,程序運行的時候還必須把excel關掉,得等程序跑完的時候還才能再次打開excel驗證,非常不方便。從文件訪問的模式來看,一個進程寫,多個進程讀應該是不沖突的。查了下相關的資料,只要指定FileShare參數為ReadWrite即可, 一個簡單的示例如下:
File.Open(@"r:\input.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
本來也算是一個常規操作了,之前也用過;但由於用得不多,容易忘,這里做個筆記,以備后續查詢。