【发布时间】:2015-09-25 04:02:19
【问题描述】:
我是初学者,正在努力学习 Visual Basic .NET
我有一个包含日志文件的顶级目录。下面是其中一个文件的例子,文件名生成方法:
Private Property fileDate As String = (Date.Today.ToString("yyyy-MM-dd") & "-" & TimeOfDay.ToString("HH-mm-ss"))
文件实际生成后,最终的文件名是这样的: 2015-09-22-17-37-16-MyAppName.log
我希望能够获取日志目录中的所有文件,并删除任何超过 x 天的文件。我想保留从程序运行当天起 7 天以上的日志。如果没有大量低效的代码,我想不出任何方法来做到这一点..
我尝试尝试了解有关 FileIO.FileSystem.GetFiles.. 的更多信息,但到目前为止才想出这个:
Dim curDate As Date = Date.Today
Dim subDate As Date = curDate.AddDays(-7)
Dim newDate As String = subDate.ToString("yyyy-MM-dd")
For Each fileFound As String In FileIO.FileSystem.GetFiles("logs",
FileIO.SearchOption.SearchTopLevelOnly,
{newDate & "*"})
Console.WriteLine("FOUND FILE")
Console.WriteLine(fileFound)
Next
当然,这只会查找从当前日期起 7 天前的日期的日志文件..
似乎我还需要将日志目录中的所有文件放入一个数组中,然后从该数组中删除任何超过 7 天的文件。然后最后删除所有保留在数组中的文件?但是怎么做呢?
有人可以帮忙吗?非常感谢..
【问题讨论】:
-
逻辑将获取所有文件名,将每个文件中的日期解析为
Date,然后将其与您的阈值日期进行比较。 -
你能提供一个样品吗.. 我在使用下面的样品时遇到了问题.....
-
对于找到的每个文件,我似乎无法弄清楚如何提出:如果 fileFound 日期早于阈值日期(- x 天数),则删除文件...
-
您是否有理由要在文件名中使用日期而不是文件创建日期?例如:msdn.microsoft.com/en-us/library/…
-
你用过
DateTime.AddDays方法吗?
标签: vb.net date logging delete-file