c#,在流读取 msbuild 日志文件时出现问题,而 msbuild 记录器仍在写入它

发布于 2024-11-28 04:25:02 字数 221 浏览 0 评论 0原文

我尝试使用 StreamReader 通过 FileSystemWatcher 实时读取 MSBuild 日志文件。当 MSBuild 仍在写入时,它总是提示我文件异常。当 MSBuild 完成编译时,我的代码可能只能向我的 RichTextBox 控件显示 MSBuild 日志内容...

是否有其他方法可以编写代码来读取现在由另一个进程使用的文件?例如,notepad.exe可以随时读取文件而无需担心...

I try to use StreamReader to read the MSBuild log file real time by using FileSystemWatcher. It always prompt me File Exception when MSBuild is still writing to it. My code may only managed to show the MSBuild log content to my RichTextBox control when MSBuild completed the compilation...

Is there any alternative to write a code for reading a file which is now using by another process? Such as, notepad.exe read file in anytime without concern...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心在旅行 2024-12-05 04:25:02

您如何实例化 StreamReader?

如果您只是将文件路径传递到构造函数中,那么这可能是您的问题,因为这样做不会指定正确的文件共享权限。

试试这个:

StreamReader streamReader = new StreamReader(File.Open("C:\\......", FileMode.Open, FileAccess.Read, FileShare.ReadWrite));

How are you instantiating the StreamReader?

If you are simply passing the file path into the constructor then that may be your problem as doing so will not specify the correct file sharing rights.

Try this:

StreamReader streamReader = new StreamReader(File.Open("C:\\......", FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
月下凄凉 2024-12-05 04:25:02

您可以尝试使用“Open”方法的重载之一来指定您仅尝试读取。像这样:

FileStream fs = 
    File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

You can try to use one of the overloads of the 'Open' method, to specify you are only trying to read. Like this:

FileStream fs = 
    File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文