可以使用FileShare.ReadWrite的FileShare值打开文件进行读取,而其他程序(例如Excel)中的文件已经打开。例如:
using (FileStream fs = new FileStream(@"c:\abd\somefile.xlsx",
FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
// read file, etc.
}
只是想知道这是不是一个好主意。例如在最坏的情况下,如果外部程序正在写入文件,并且您的代码试图同时读取它会发生什么?
我注意到像电子表格这样的库可以读取文件,即使它们在Excel中打开也是如此 - 他们基本上希望他们能够在更改任何部分之前将整个文件读入内存吗?