首页 / C# / C#持续观察正在重建的文件
C#持续观察正在重建的文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#持续观察正在重建的文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1258字,纯文字阅读大概需要2分钟。
内容图文
![C#持续观察正在重建的文件](/upload/InfoBanner/zyjiaocheng/810/6e0752106eaa4fe2a4359ea79a198aa3.jpg)
我正在尝试连续观看正在删除的日志文件,并在每次更新时重写.
我目前的方法是使用FileSystemWatcher.这在修改文件时效果很好,但是如果我删除文件并创建一个具有相同名称的新文件,它将停止跟踪它.
我目前的做法:
namespace LogReader
{
class Program
{
static void Main(string[] args)
{
Watch();
while (true)
{
}
}
public static void Watch()
{
var watch = new FileSystemWatcher();
watch.Path = @"C:\TEMP\test";
watch.Filter = "test.txt";
watch.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite;
watch.Changed += new FileSystemEventHandler(OnChanged);
watch.EnableRaisingEvents = true;
}
private static void OnChanged(object source, FileSystemEventArgs e)
{
if (e.FullPath == @"C:\TEMP\test\test.txt")
{
Console.Clear();
Stream stream = File.Open(@"C:\TEMP\test\test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader streamReader = new StreamReader(stream);
var lines = streamReader.ReadToEnd();
Console.Out.WriteLine(lines);
streamReader.Close();
stream.Close();
}
}
}
}
解决方法:
这是因为Create和Delete操作不会触发FileSystemWatcher的OnChanged事件.所以你需要注册那些事件并分配相同的事件处理程序OnChanged它将如下所示:
watch.Created += new FileSystemEventHandler(OnChanged);
watch.Deleted += new FileSystemEventHandler(OnChanged);
您可以查看This有关FileSystemWatcher的更多信息.
内容总结
以上是互联网集市为您收集整理的C#持续观察正在重建的文件全部内容,希望文章能够帮你解决C#持续观察正在重建的文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】