Im trying to move all files from "C:\SSIS\Test1\" that are new than 2 days old to the C:\SSIS\Test\" but for some reason it keeps skipping over the if statement marked in red.

Any help please. Very amateur programmer here!

Sub Text()
        Dim sDay As DateTime
        sDay = DateAdd(DateInterval.Day, -2, Date.Now)
        Dim FSO As Object
        'Dim FromPath As String
        Dim ToPath As String
        ToPath = "C:\SSIS\Test\"
        Dim di As New DirectoryInfo("C:\SSIS\Test1\")
        ' Get a reference to each file in that directory.
        Dim fiArr As FileInfo() = di.GetFiles()
        ' Display the names of the files.
        Dim fri As FileInfo
        For Each fri In fiArr
                FSO = CreateObject("scripting.filesystemobject")
                If fri.Name > sDay Then 'skips over this part even when the file was just created
                    FSO.CopyFile(Source:=di, Destination:=ToPath)
                End If
            Catch ex As Exception
            End Try

        Next fri
6 Years
Discussion Span
Last Post by Teme64

You're comparing file's name to a date. The comparison should be

If fri.LastAccessTime > sDay Then

You should also move FSO = CreateObject("scripting.filesystemobject") before For Each fri In fiArr because now your loop creates a new object in each iteration. After the loop (line Next fri ) dispose the filesystem object with FSO = Nothing HTH


Hi! Nice to hear that you got answer to your problem. Could you please mark the thread as solved. Thank you!

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.