Задача "Сценарий служб SSIS" Проверьте, пуста ли папка

В рамках задачи сценария SSIS у меня есть следующий код, который проверяет, является ли папка пустой. Затем я хочу передать, если это так или нет, в переменную 'Dim_File_Count' и использовать ограничение Precedence, чтобы перейти к следующей задаче в случае успеха. Однако мой код продолжает указывать, что папка пуста, даже если это не так:

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

1 ответ

Решение

Вы можете использовать Length собственность GetFiles метод Directory класс, чтобы проверить, есть ли какие-либо файлы в указанной папке. Дополнительный третий SearchOption параметр GetFiles может использоваться, если необходим поиск в подкаталогах, т.е. 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");
    }
Другие вопросы по тегам