在 C# 中(可能在不安全模式下)读取锁定文件的侵入性最小的方法是什么?

2024-03-22

我需要读取可能被锁定的 Windows 文件,但我不想创建任何类型的锁来阻止其他进程写入该文件。

另外,即使文件被锁定为独占使用,我也想看看里面有什么。

尽管这不是我的确切用例,但请考虑如何在使用和安装时读取 SQL/Exchange 日志或数据库文件。我不想造成损坏,但我仍然想查看文件的内部并读取它。


您无需复制文件即可完成此操作,请参阅this http://coding.infoconex.com/post/2009/04/21/How-do-I-open-a-file-that-is-in-use-in-C文章:

诀窍是使用 FileShare.ReadWrite (来自文章):

private void LoadFile()
{
    try
    {
        using(FileStream fileStream = new FileStream(
            "logs/myapp.log",
            FileMode.Open,
            FileAccess.Read,
            FileShare.ReadWrite))
        {
            using(StreamReader streamReader = new StreamReader(fileStream))
            {
                this.textBoxLogs.Text = streamReader.ReadToEnd();
            }
        }
    }
    catch(Exception ex)
    {
        MessageBox.Show("Error loading log file: " + ex.Message);
    }
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中(可能在不安全模式下)读取锁定文件的侵入性最小的方法是什么? 的相关文章

随机推荐