读取连续附加的文件会导致问题吗?

时间:2015-02-18 04:56:10

标签: c# file text stream

我们在另一台服务器上创建日志文件,并使用以下命令连续添加状态和错误日志:

using (StreamWriter sw = File.AppendText(path))
{
}

这些是在远程Windows机器上,我们通常会经历远程连接和通过记事本读取文件的繁琐过程。所以我在考虑创建一个应用程序,以便在本地复制文件(使用File.Copy()之类的东西)或查看文件'当前快照或逐行(使用FileInfo(path).OpenText().ReadLine().ReadToEnd())。

我的问题是,如果我执行任何这些读取,是否会出现可能导致运行记录器异常的问题或冲突?记录器已集成到主服务应用程序中,因为读取日志文件,我不想让我们的服务崩溃。

1 个答案:

答案 0 :(得分:1)

从理论上讲,它应该是“好的”,对于“#34;罚款”的某些含义。

StreamWriter返回的File.AppendText()打开FileShare.Read文件,允许其他进程读取文件,即使文件已打开也可以写入。在您的轮询结束时,您需要确保使用FileShare.Write打开文件,以允许其他进程(例如日志记录过程)打开文件,即使您已经打开文件进行阅读。 / p>

当然,您可能会不时地阅读部分数据。所以我想这在某种程度上取决于你对"冲突"的定义。 :)但是应该可以至少让它工作而不会导致记录器抛出异常。