如何删除文件

时间:2014-07-23 20:55:29

标签: vb.net file-io

我试图删除超过六个月的文件。这是我的代码。它识别文件,但不删除。

 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

1 个答案:

答案 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个月