我正在用 C# 构建一个应用程序,我必须在其中打开一个 CSV 文件才能从中读取数据。当我尝试从 C# 打开 CSV 文件时,该文件已在 Excel 中打开时出现异常。异常表示该进程无法访问该文件,因为它已经打开。即使在其他应用程序中打开文件,如何解决此问题并打开文件?
谢谢,
拉克什。
最佳答案
前段时间我遇到了这个问题。
您缺少 FileShare
参数。如果没有指定,如果您打开一个文件,它将被您的应用程序独占锁定。但由于它已被 Excel(或任何其他应用程序)打开,您将收到异常。
你可以尝试使用这个 - 我认为这将是你最好的选择 -using (FileStream fs = File.Open(<file-path>, FileMode.Open, FileAccess.Read, FileShare.Read))
这段代码说:你好 Excel!如果您允许(读取,而不是抛出异常),我想读取该文件,尽管我不会尝试拥有它,而且我知道您可以随时修改它。
如果这引发错误,则 Excel 甚至拒绝了您的读取访问权限。那就太可惜了!
祝一切顺利。
关于c# - 打开已打开的文件时出现异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3846646/