在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;
}
答案 0 :(得分: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");
}