在C#中,如果我们尝试读取某个被其它进程以写模式打开的文件件时,会遇到IO异常:
有的时候,这个被其进程占用的异常是比较令人烦心的。最近我写一个解析excel的程序的时候,由于这个异常,程序运行的时候还必须把excel关掉,得等程序跑完的时候还才能再次打开excel验证,非常不方便。从文件访问的模式来看,一个进程写,多个进程读应该是不冲突的。查了下相关的资料,只要指定FileShare参数为ReadWrite即可, 一个简单的示例如下:
File.Open(@"r:\input.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
本来也算是一个常规操作了,之前也用过;但由于用得不多,容易忘,这里做个笔记,以备后续查询。