Ssis 使用SSI根据当前访问的文件夹递归导航生成动态xml文件的目录
我需要使用SSIS(SQL Server集成服务)访问文件夹及其所有子文件夹。目前,通过在读取文件夹路径后将其设置为一个变量,我能够遍历当前文件夹的所有.txt文件,并填充一个预生成的(带有head info)xml文件 我现在需要的是能够为每个访问的文件夹创建一个新的xml文件(开始的内容将始终相同)。一旦我能够创建它,作为访问新文件夹的第一个操作,我就可以简单地应用到目前为止我开发的逻辑Ssis 使用SSI根据当前访问的文件夹递归导航生成动态xml文件的目录,ssis,Ssis,我需要使用SSIS(SQL Server集成服务)访问文件夹及其所有子文件夹。目前,通过在读取文件夹路径后将其设置为一个变量,我能够遍历当前文件夹的所有.txt文件,并填充一个预生成的(带有head info)xml文件 我现在需要的是能够为每个访问的文件夹创建一个新的xml文件(开始的内容将始终相同)。一旦我能够创建它,作为访问新文件夹的第一个操作,我就可以简单地应用到目前为止我开发的逻辑 但是,我现在被阻止了,因为在我读取文件的循环中(带有完整路径),我找不到一种方式来表示“如果访问的文件夹
但是,我现在被阻止了,因为在我读取文件的循环中(带有完整路径),我找不到一种方式来表示“如果访问的文件夹是新的,则创建xml文件” 假设我理解这个问题,您需要遍历整个目录结构,对于找到的每个文件夹,您需要创建一个基本XML文件。然后,对于在该文件夹中找到的每个文本文件,您将对XML文件执行一些操作。诀窍在于如何只创建一次XML文件 我会设想这样一个过程 使用来填充包含文件夹结构的变量(directoryXML>)的脚本任务,如
<Dir>
<D>C:\ssisdata</D>
<D>C:\ssisdata\a</D>
<D>C:\ssidata\a\b</D>
</Dir>
C:\SSIS数据
C:\ssisdata\a
C:\ssidata\a\b
使用将该XML分解为一个变量(currentdirectry)
您将执行在currentDirectory中创建XML文件的一次性任务
进一步使用currentDirectory变量作为Foreach文件枚举器上的表达式(分配给FileSpec为*.txt的目录),然后可以对所有符合该规范的文件执行任务。不要选中“遍历子文件夹”选项,因为这将不会给出所需的结果
这是解决该问题的一种相当高级别的方法,因为我假设您对SSIS有一定的了解,但这种方法应该是合理的。如果您有任何特殊的症结,请告诉我。谢谢您的提示,我已经开始在不同的任务中进行流程拆分,但您的回答帮助了我。对于良好的解释,+1国家!