C# 防止Excel导致我的应用程序因文件锁定错误而崩溃

C# 防止Excel导致我的应用程序因文件锁定错误而崩溃,c#,excel,file,locking,share,C#,Excel,File,Locking,Share,我从我的C#应用程序中打开一个CSV文件,用 FileShare.Read 旗帜。我只会附加到文件中-我从不尝试随机访问。如果在我的应用程序仍在运行时从Excel打开文件,Excel会给我一个预期的“打开只读/通知”提示。如果我选择了“通知”,有时我的应用程序在尝试使用 0x21 error - "The process cannot access the file because another process has locked a portion of the file." 我认为

我从我的C#应用程序中打开一个CSV文件,用

FileShare.Read 
旗帜。我只会附加到文件中-我从不尝试随机访问。如果在我的应用程序仍在运行时从Excel打开文件,Excel会给我一个预期的“打开只读/通知”提示。如果我选择了“通知”,有时我的应用程序在尝试使用

0x21 error - "The process cannot access the file because another process has locked a portion of the file."

我认为允许其他进程读取文件是安全的,但显然不是。是否仍然可以共享文件以供读取,同时防止另一个应用程序锁定它(我假设Excel试图复制导致锁定的文件)?我还假设锁只会影响复制时的字节数——那么为什么附加到文件会影响这一点呢

当您访问该文件时,会有一个标志,用于执行悲观锁定与乐观锁定

当您访问该文件时,会有一个标志,用于执行悲观锁定与乐观锁定