Задача «Сценарий служб SSIS» Проверьте, пуста ли папка - PullRequest
0 голосов
/ 03 декабря 2018

В рамках задачи сценария служб 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 Ответ

0 голосов
/ 03 декабря 2018

Вы можете использовать свойство 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");
    }
...