使用vb6删除超过x年的文件

使用vb6删除超过x年的文件,vb6,datediff,Vb6,Datediff,我想知道如何删除超过x年的文件 注意:我的日期是mydate(yyyy/mm/dd)我不知道这是否会导致任何问题 这是我目前的代码: Dim fso As Variant Dim directory As Variant Dim modified As Variant Dim files As Variant Private Sub Command1_Click() Set fso = CreateObject(“Scripting.FileSystemObject”) Se

我想知道如何删除超过x年的文件

注意:我的日期是
mydate(yyyy/mm/dd)
我不知道这是否会导致任何问题

这是我目前的代码:

Dim fso As Variant
Dim directory As Variant
Dim modified As Variant
Dim files As Variant

Private Sub Command1_Click()

    Set fso = CreateObject(“Scripting.FileSystemObject”)
    Set directory = fso.GetFolder(App.Path & "\log")
    Set files = directory.files

    For Each modified In files

    If DateDiff("Y", modified.DateLastModified, Now) > mydate Then

        modified.Delete

    Next

End Sub
这是我有生以来第一次使用DateDiff,请解释一下我错在哪里。

返回两个日期之间的差值。您使用它来获取当前日期和上次修改文件的时间之间的年差,这是正确的,但是您将其与日期变量进行比较(我认为-您没有包括myDate的定义)。你需要的东西更像:

If DateDiff("Y", modified.DateLastModified, Now) > x Then
    modified.Delete
End If
其中x是一个整数(例如,对于两年以上的文件,为2)

返回两个日期之间的差值。您使用它来获取当前日期和上次修改文件的时间之间的年差,这是正确的,但是您将其与日期变量进行比较(我认为-您没有包括myDate的定义)。你需要的东西更像:

If DateDiff("Y", modified.DateLastModified, Now) > x Then
    modified.Delete
End If

其中x是一个整数(例如,对于两年以上的文件,为2)

啊,该死的,我不相信我犯了这样的错误!这太糟糕了,我想这是因为我已经病得够厉害了,大脑受到了损伤。无论如何,我都无法正确地思考这个问题。谢谢。还要注意,
DateDiff(“Y”…)
只给出了年份值的差异。31/12/2011和1/1/2012之间的差异将使1年的不同,尽管只有1天的差异。你可能想考虑改变代码,这样DateDiff就可以在几天内而不是几年的时间来消除差异,以避免迪安娜提出的问题。我不相信我犯了这样的错误。这太糟糕了,我想这是因为我已经病得够厉害了,大脑受到了损伤。无论如何,我都无法正确地思考这个问题。谢谢。还要注意,
DateDiff(“Y”…)
只给出了年份值的差异。31/12/2011和1/1/2012之间的差异将导致1年的不同,尽管只有1天的差异。你可能需要考虑改变代码,这样DateDiff就可以在几天内而不是几年内返回差异来避免迪安娜提出的问题。