SSIS脚本任务,用于检查文件夹中是否存在文件
本文关键字:是否 存在 文件 文件夹 检查 脚本 任务 用于 SSIS | 更新日期: 2023-09-27 18:21:44
我想检查SSIS中的特定文件夹中是否存在文件。我怎样才能做到这一点?
变量:
文件夹-字符串-C::''Temp''
file-string-1.txt
fileExists-布尔值-错误
public void Main()
{
string folder = Dts.Variables["User::folder"].Value.ToString(); //@"C:'temp'";
string file = Dts.Variables["User::file"].Value.ToString(); //"a.txt";
string fullPath = string.Format(@"{0}'{1}", folder, file);
Dts.Variables["User::fileExists"].Value = File.Exists(fullPath);
Dts.TaskResult = (int)ScriptResults.Success;
}
您可以使用Foreach Loop Container
,只需将所有项目放入其中。如果文件存在,它将被执行,如果不存在,则不会执行。非常简单:)
作为"out"变量的替代方案,您还可以根据文件是否存在来更改Dts.TaskResult
。如果文件不存在,下面的代码段将使脚本任务失败。(如果启用了日志记录,它还会创建一个日志条目。)
public void Main()
{
string fileName = Dts.Variables["User::sourcePath"].Value.ToString() + Dts.Variables["User::fileName"].Value.ToString();
if (File.Exists(fileName))
{
Dts.TaskResult = (int)ScriptResults.Success;
}
else
{
Dts.Log(string.Format("File {0} was not found.",fileName),0,null);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
SSIS中没有本机任务可以进行此检查,但您可以使用脚本任务来完成此检查,但是我建议您查看以下链接以了解实现此检查所需的简单步骤。
http://www.bidn.com/blogs/DevinKnight/ssis/76/does-file-exist-check-in-ssis
http://sqlmag.com/sql-server-integration-services/simple-effective-way-tell-whether-file-exists-using-ssis-package