如何从ssis中的多个文件夹中删除旧的csv文件

问题描述 投票:2回答:2

我正在开发一个项目,我需要在ssis中使用for-each循环容器从多个分支文件夹中删除旧的.csv文件?任何人都可以指导我。顺便说一句,我是ssis世界的新手,所以一个例子和截图确实对我很有帮助。

孩子问候,到

sql-server ssis etl
2个回答
1
投票

使用脚本任务并写如下:

这将删除文件夹和子文件夹中的所有文件

C#代码

using System.IO;

string[] filePaths = Directory.GetFiles(@"c:\MyDir\","*.csv",System.IO.SearchOption.AllDirectories);
foreach (string filePath in filePaths)
  File.Delete(filePath);

使用脚本任务enter image description here创建一个SSIS包

输入如图所示的代码

请记住更改特定文件夹的路径

enter image description here


0
投票

有两种方法可以达到这个目的:

Using File System Task

只需添加一个Foreach循环,并选择包含csv的目录,在foreach循环容器中添加一个删除这些文件的File System Task。您可以阅读这些详细的文章以获取更多信息:Delete files from specified folder using File System Task in SQL Server - SSIS

Using a Script Task

只需添加一个脚本任务,并选择脚本语言作为Visual Basic,并编写以下代码:

Public Sub Main()

    Dim strFiles as String() = Io.Directory.GetFiles("C:\MyDirectory\","*.csv",IO.SearchOption.AllDirectories)

    For each strFile as String in strFiles
        IO.File.Delete(strFile)
    Next

    Dts.TaskResult = ScriptResults.Success

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.