SSIS脚本任务,用于检查文件是否存在于文件夹中

时间:2013-07-10 10:41:45

标签: c# file ssis file-exists

我想查看SSIS中特定文件夹中是否存在文件。我怎么能做到这一点?

4 个答案:

答案 0 :(得分:10)

变量:

folder - string - C :: \ Temp \

file - string - 1.txt

fileExists - boolean - False

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;
}

答案 1 :(得分:6)

您可以使用Foreach Loop Container,只需将所有商品放入其中即可。如果文件存在则执行,否则不执行。非常简单:)

答案 2 :(得分:2)

作为具有“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;
    }

}

答案 3 :(得分:1)

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