SSIS 脚本任务检查文件夹是否为空

SSIS Script Task Check if a folder is empty

在 SSIS 脚本任务中,我使用以下代码检查文件夹是否为空。然后我想将它是否传递到变量 'Dim_File_Count' 中,如果成功则使用优先约束进入下一个任务。但是我的代码一直指出该文件夹是空的,即使它不是:

public void Main()
{
    //string FolderName = Dts.Variables["User::Tech_Dim"].Value.ToString();

    if (File.Exists(Dts.Variables["User::Tech_Dim"].Value.ToString())==false)
    {
        Dts.Variables["User::Dim_File_Count"].Value = 0;
        MessageBox.Show("folder empty");
    }
    else
    {
        Dts.Variables["User::Dim_File_Count"].Value = 1;
        MessageBox.Show("folder is not empty");
    }



    Dts.TaskResult = (int)ScriptResults.Success;
}

可以使用Directoryclass的GetFiles方法的Length属性查看指定文件夹中是否有文件.如果需要搜索子目录,可以使用 GetFiles 的可选第三个 SearchOption 参数,即 SearchOption.AllDirectories,默认只检查父文件夹。

    if (Directory.GetFiles(Dts.Variables["User::Tech_Dim"].Value.ToString(), "*").Length > 0)
    {
        Dts.Variables["User::Dim_File_Count"].Value = 0;
        MessageBox.Show("folder empty");
    }
    else
    {
        Dts.Variables["User::Dim_File_Count"].Value = 1;
        MessageBox.Show("folder is not empty");
    }