C# 为什么有些应用程序锁定文件,而另一些则不锁定?

C# 为什么有些应用程序锁定文件,而另一些则不锁定?,c#,excel,C#,Excel,在我的数据记录应用程序中,我写入一个临时文件,其格式为。。。AppData\Local\Temp\euaxgd5z.csv 默认情况下,这将在Excel中打开 Process.Start(TempFileLocationBox.Text.ToString()); 下次计时器尝试向该文件写入更多数据时,将引发异常。但是如果我用TextPad打开它 Process.Start("textpad.exe", TempFileLocationBox.Text.ToString());

在我的数据记录应用程序中,我写入一个临时文件,其格式为。。。AppData\Local\Temp\euaxgd5z.csv

默认情况下,这将在Excel中打开

Process.Start(TempFileLocationBox.Text.ToString());    
下次计时器尝试向该文件写入更多数据时,将引发异常。但是如果我用TextPad打开它

Process.Start("textpad.exe", TempFileLocationBox.Text.ToString());    

它可以非常愉快地写入文件,TextPad会询问我是否要重新加载它。我怎样才能让Excel表现得像TextPad一样好?

就我个人而言,我甚至不会试图向Excel“传达”您希望重新加载文件的事实。如果可能的话,我会在关闭旧的excel副本后,编写一个新文件并打开一个新的excel副本


这样,您就不必担心用户是否使用open office,例如。

引发了什么异常?最好的办法是让Microsoft更改Excel打开文件共享/锁定模式的方式。不过我建议你不要屏住呼吸。Excel这样做可能有正当理由。System.IO.IOException未经处理HResult=-2147024864 Message=进程无法访问文件“C:\Users\steve\AppData\Local\Temp\euaxgd5z.csv”,因为它正被另一个进程使用。真的吗?我是.NET的新手,我以为一切都是可能的!这是因为Excel有一个1-800支持电话号码。回答这个问题的人也没有很好的解决方案,因为我的同事在我编辑电子表格的时候重写了它,当我保存我的电子表格时,他的更改丢失了。我需要这些变化。