保存与媒体文件使用相关的日志文件

问题描述:

我希望在c#中使用特定的mp3文件(在另一个应用程序中用作警报)检测并采取行动。保存与媒体文件使用相关的日志文件

等待想法, 谢谢大家。

Windows不会更新打开文件进行读取时的最后访问时间,因此无法使用。

我有两种方法可以考虑这样做,但都涉及到轮询系统。

  1. 每隔X秒循环一次并尝试打开文件进行写入。如果失败,则文件打开。

  2. 每隔X秒循环一次并使用WMI查询来查看文件是否正在使用。

无论采用哪种方式,您都必须在特定时间段内处理连续的“打开”,因为这只是单个实例。

+0

在这个问题上,我应该改变一个x + 1秒长的无效文件的默认报警文件,比我不会跳过任何发生... – Bartu 2012-01-09 21:13:24

您可以使用File.LastAccessTime方法。

详情这里:

http://msdn.microsoft.com/en-us/library/system.io.file.getlastaccesstime.aspx

本质上使用一个循环,peroidically检查。

此解决方案的问题是,从MSDN文档,“此方法可能会返回一个不准确的值,因为它使用本机函数的值可能不被操作系统不断更新。”

+0

感谢,这可能被认为是一种选择,但我需要一个强大的解决方案才能行动,这可能会失败,很多。 – Bartu 2012-01-09 19:42:32

+0

这可能是您的最佳解决方案,因为Windows并不总是更新该值。可能保证的方法是在从文件系统读取之前挂钩(可能性未知)。 – 2012-01-09 19:47:52

+0

进行了测试,看起来像lastAcessTime功能根本不起作用。但无论如何,非常感谢您的想法。 – Bartu 2012-01-09 20:47:50