SSIS删除30天以上的文件

时间:2020-01-27 19:54:52

标签: vb.net visual-studio ssis

我正在尝试在SSIS中使用VB.Net脚本,该脚本将使用VB.Net脚本从存档文件夹中删除超过30天(基于创建日期)的所有文件。这是脚本:

Imports System
Imports System.Data
Imports System.IO
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime

<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute()>
<System.CLSCompliantAttribute(False)>
Partial Public Class ScriptMain
    Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

    Public Sub Main()

        Dim FilePath As String

        Dim Days As Integer

        Days = CInt(Dts.Variables("User::Days").Value)

        FilePath = CStr(Dts.Variables("User::FilePath").Value)

        For Each dir As DirectoryInfo In New DirectoryInfo(FilePath).GetDirectories()

            For Each file As FileInfo In dir.GetFiles()

                If (Now - file.CreationTime).Days > Days Then file.Delete()

            Next

        Next

    End Sub

    End Class

其中FilePath变量(String)= ArchiveFolder文件路径,而Days(INT32)= 30

它们都被设置为ReadOnlyVariables。

脚本任务在SSIS中“成功”执行,但实际上并未删除文件。

有什么线索吗?

1 个答案:

答案 0 :(得分:2)

尝试一下

  Dim Days = CInt(Dts.Variables("User::Days").Value) * -1

        Dim directory As DirectoryInfo = New DirectoryInfo(FilePath)

        For Each file In directory.GetFiles("*", SearchOption.AllDirectories)
            If (Now.AddDays(Days) <= file.CreationTime) Then file.Delete()
        Next