根据变量SSIS脚本删除文件

Delete files based on variable SSIS Script

我在ssis中有一个删除文件的脚本,我需要通过添加变量来修改脚本,以便进程可以动态执行。如果有人可以通过展示如何在下面的脚本中添加变量来帮助我,我将不胜感激:-

enter public void Main()
    {
        int RetentionPeriod = 0;
        string directoryPath = @"\ABCD\EFG\HIJ";--need to add location variable
        string[] oldFiles = System.IO.Directory.GetFiles(directoryPath, "*.csv");
        foreach (string currFile in oldFiles)
        {
            FileInfo currFileInfo = new FileInfo(currFile);
            if (currFileInfo.LastWriteTime < (DateTime.Now.AddDays(-RetentionPeriod)))---need to add date variable here
            {
                currFileInfo.Delete();
            }
        }
        // TODO: Add your code here
        Dts.TaskResult = (int)ScriptResults.Success;
    }
}

}

如脚本所示,我需要添加两个变量,即位置变量和日期 variable.Both 变量具有字符串数据类型

I know this question is very silly but I have no exp in writing SSIS scripts

string directoryPath = Dts.Variables["User::NameOfStringVariable"].Value

您还必须将变量添加到脚本任务配置的只读列表中。这是另一个问题的屏幕截图,向您展示了在何处使脚本可以访问变量:

如果您不知道 where/how 将变量添加到包中。一种简单的方法是右键单击控制流的灰色区域并选择变量,这将显示变量 window 然后只需添加具有所需适当数据类型的变量。

编码过度:试试这个: 按照上面的回答设置一个变量以包含文件路径 在设置 System.IO 之后将其添加到 main 中;参考

public void Main()
{
    string FilePath = Dts.Variables["UserControl::File"].Value.ToString();
    if (File.Exists(FilePath))
    {
        File.Delete(FilePath);
    }
    Dts.TaskResult = (int)ScriptResults.Success;
}