我的代码是:
Try
For Each fi As IO.FileInfo In New IO.DirectoryInfo(BACKUP).GetFiles()
If DateDiff(DateInterval.Month, fi.LastWriteTime, Now) > 6 Then
fi.Delete()
End If
Next
我只是想知道为什么它不会从02/04/2014删除文件。这是超过6个月前,但文件仍然存在。关于为什么会这样做的任何提示?
答案 0 :(得分:0)
Dim Date1 As New Date(2014, 2, 4) ' fi.LastWriteTime
Dim Date2 As Date = Now ' 08/06/2014
Dim Diff As Long = DateDiff(DateInterval.Month, Date1, Date2)
Diff
等于 6 。 > 6
等于 至少 7 。
6 不高于 6 。
答案 1 :(得分:0)
更大的间隔。如果Interval设置为DateInterval.Year,则返回值仅从Date1和Date2的年份部分计算。类似地, DateInterval.Month 的返回值完全根据参数的年份和月份部分计算,而DateInterval.Quarter则来自包含两个日期的季度。
所以在这种情况下,结果将是6
- 即08减去02 - 这未通过测试。
答案 2 :(得分:0)
两个答案都提供了原因,但都没有提供解决方案。改变这个:
If DateDiff(DateInterval.Month, fi.LastWriteTime, Now) > 6 Then
对此:
If DateDiff(DateInterval.Month, fi.LastWriteTime, Now) >= 6 Then