我需要读取可能被锁定的 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(使用前将#替换为@)