C# 是否在日期更改时自动更新路径?

C# 是否在日期更改时自动更新路径?,c#,C#,我的程序正在观看每天自动生成的文本文件日志 现在,当日期更改时,我的程序继续使用最后一天的文件路径 有没有一种方法可以不检查datetime.day每次是否等于应用程序在启动时的日期而执行此操作 我看到SystemsEvent.TimeChanged,但它只有在用户手动更改日期时才起作用 谢谢。简单的方法是使用DateTime对象创建路径。比如, string fp = @".\subdir\otherSubdir\somefile-" + DateTime.Now.ToString("M

我的程序正在观看每天自动生成的文本文件日志

现在,当日期更改时,我的程序继续使用最后一天的文件路径

有没有一种方法可以不检查datetime.day每次是否等于应用程序在启动时的日期而执行此操作

我看到SystemsEvent.TimeChanged,但它只有在用户手动更改日期时才起作用


谢谢。

简单的方法是使用
DateTime
对象创建路径。比如,

   string fp = @".\subdir\otherSubdir\somefile-" + DateTime.Now.ToString("MM-dd-yyyy") + ".log";
我当然不知道你约会的方式是什么。关于DateTime的ToString方法的格式说明符的文档可以在这里找到


正如在评论中指出的,您也可以使用
FileSystemWatcher
,但是,这要复杂得多,在这里可能没有必要。如果您正在寻找更通用的解决方案(可以处理使用不同命名约定的文件)这就是解决方法。

在父文件夹上使用文件系统监视程序,查找“文件新建文件”事件。您需要提供更多的上下文来解释您的实际操作,最好提供一些代码示例,以便有人能够理解您的问题。您的问题非常不清楚,但是你看过了吗?你为什么不想用
日期时间
检查日期呢?即使你每秒钟检查一次当前日期时间,也不会影响你的表现。那么这里有什么问题?请具体说明。我正在使用这种路径,但当一天改变时,路径仍然是最后一次,这就是为什么我问是否有任何方法将路径排除在循环之外,谢谢。@Dan272你所说的毫无意义。这条路径在哪个循环中?今天
DateTime.Now.ToString(“MM-dd-yyyy”)返回5-3-2013,明天返回5-4-2013<代码>fp
明天将与今天不同。这样做的唯一原因是您的应用程序作为服务运行,并且设置路径的代码仅在启动时执行。每次尝试读取文件之前,请确保设置了
fp
。这正是我的意思,路径atm仅在启动时运行,我的问题是,是否有任何触发器会在日期更改时通知我,或者我需要在每个循环(读取文件时)检查路径日期,因为文件每100毫秒读取一次,如果应用程序延迟创建新日志文件,并且我的应用程序将尝试读取第二天的文件,那么它将使我的应用程序崩溃。这就是为什么我想知道是否有一个触发器-谢谢agian。@Dan272
FileSystemWatcher
可以用来驱动程序事件;即当您正在监视的目录中发生更改时,您可以打开该文件。否则,您可以在循环中设置路径并使用
File.Exists(fp)
或try-catch来防止应用程序崩溃。这里的示例演示了如何设置FSW,非常简单。