检查文件是否存在的步骤

要完成此目标,需要执行以下任务。

  1. Foreach 循环容器: 迭代用户配置的文件目录。
  2. 表达式任务: 如果文件存在则更新变量。

脚步

  1. 首先转到**解决方案资源管理器,**双击 Project.params 并创建一个类型为 string 的参数 FolderPath ,将值设置为 E:\ DataDir \ SourceFiles。

  2. 创建用户变量 FileNameFromFolder (String), FileToSearch (String)分配要检查的值并创建变量 IsFound (Boolean)。

  3. 从容器部分下的 SSIS 工具箱中拖放 Foreach 循环容器

  4. 双击 Foreach 循环编辑器左侧的 Foreach 循环容器,单击 Collection 。在右侧将 Enumerator 设置为 Foreach 文件枚举器,现在为表达式单击将打开属性表达式编辑器的三个点。选择 Directory 作为属性,对于表达式选择 @ [$ Project::FolderPath] 。单击确定。 StackOverflow 文档

  5. 现在在 Foreach 循环编辑器中,对于 Files set * .txt 的值,对于 Retrieve 文件名的值,选择 Name only,通常我们选择 Fully Qualified,因为它返回带有完整路径的文件名。如果文件夹中可以有多个*文件夹,*请检查 Traverse 子文件夹。 StackOverflow 文档

  6. 在左侧选择 Variable Mappings ,在右侧选择 User::FileNameFromFolder ,它将自动将 Index 设置为 0. FolderPath 中的文件名将逐个分配给 FileNameFromFolder 变量。单击确定。 StackOverflow 文档

  7. 将“ 表达式任务” 拖放到 *Foreach 循环容器中,*从公共部分下的 SSIS 工具箱中拖放。

  8. 双击表达式任务,在表达式生成器中编写以下代码。单击确定。

    @ [User::IsFound] = @ [User::FileNameFromFolder] == @ [User::FileToSearch]?真假 StackOverflow 文档

  9. 上面的代码将我们要检查的文件名与文件夹中的文件名进行比较,如果两者匹配,则将 IsFound 设置为 True(文件存在)。

  10. 现在 IsFound 的值可以根据需要与优先约束一起使用。