我正在尝试在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中“成功”执行,但实际上并未删除文件。
有什么线索吗?
答案 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