【问题标题】:Force open a file强制打开文件
【发布时间】:2010-10-17 20:19:26
【问题描述】:

一个 C++ 程序正在填充一个日志文件,它保存了一个日志文件的句柄。我想用 C# 程序打开这个日志文件并解析它以查看是否已将某一行添加到日志文件中。

但是,如果我使用 C# 打开日志文件,我会收到“此文件正在被另一个进程使用”IOException。使用的代码:

using(StreamReader reader = File.OpenRead(myFile))//IOException

C++ 程序用以下命令打开文件(我无法更改 C++ 程序):

m_hFile = tsopen(m_csFilePath, 
_O_WRONLY|_O_APPEND|_O_TRUNC|_O_CREAT|_O_BINARY,
_SH_DENYWR,
_S_IREAD | _S_IWRITE); 

使用记事本打开文件可以正常工作,因此应该可以打开它。我可以强制我的 C# 程序以只读模式打开文件吗?

【问题讨论】:

    标签: c# file permissions


    【解决方案1】:

    也许尝试使用ReadWrite FileShare 打开文件?

    File.Open(myFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
    

    【讨论】:

    • 干杯,误解了 FileShare 枚举的含义。
    【解决方案2】:

    您可以使用File.Copy 获取日志文件的快照副本并尝试打开它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 2014-04-20
      • 1970-01-01
      相关资源
      最近更新 更多