我试图删除超过六个月的文件。这是我的代码。它识别文件,但不删除。
Private Sub DeleteOldBackup()
'deletes files older than six months from backup
Try
For Each fi As IO.FileInfo In New IO.DirectoryInfo(BACKUP).GetFiles()
If DateDiff(DateInterval.Month, Now, fi.CreationTime) > 6 Then
fi.Delete()
End If
Next
Catch ex As Exception
Call WriteToErrorLog("DeleteOldBackup", ex)
SendErrorEmail("Long Term Report Storage failed in DeleteOldBackup")
End Try
End Sub
答案 0 :(得分:1)
DateDiff从第一个日期的第二个日期中减去。在第一个位置传递最高日期会返回一个负数。
只需交换两个日期的位置
If DateDiff(DateInterval.Month, fi.CreationTime, Now ) > 6 Then
另请注意,此计算错误。例如
Dim d1 = new DateTime(2014,1,1)
Dim x = DateDiff(DateInterval.Month, d1, Now)
Console.WriteLine(x)
上面的代码打印6但实际上从1月1日到今天之间有超过6个月。也许您应该使用DateInterval.Day并检查180天以内的更接近6个月