Задача "Сценарий служб 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");
}