SSIS, подсчет файлов в папке с помощью скриптовой задачи, зацикливание задачи, пока количество файлов не достигнет 25
Необходимо разработать пакет, который должен прочитать количество файлов из папки ftp/. Если число меньше 25, продолжайте цикл. Переходите к следующему заданию, как только число достигнет 25.
То, что я попробовал, это:
Я использовал задачу скрипта, создал несколько переменных и переменные имеют количество файлов (успешно). Я использовал выражение в ограничении приоритета для проверки, равно ли число файлов в определенной папке 25. Если нет, то оно не перейдет к другой задаче. Что я не могу сделать, так это держать зацикливание задач скрипта до тех пор, пока число файлов не станет 25. Я пытался использовать для каждого цикла, но не смог получить желоб. пожалуйста, предложите.
Пожалуйста, посмотрите на это. У меня есть 2 задачи сценария. Первый подсчитывает и отображает количество файлов в папке. вот сценарий для этого.
enter code here
public void Main()
{
// TODO: Add your code here
String FolderPath =
Dts.Variables["User::FolderPath"].Value.ToString();
string Prefix =
Dts.Variables["User::prefix"].Value.ToString();
Int32 FileCnt = 0;
var directory = new DirectoryInfo(FolderPath);
FileInfo[] files = directory.GetFiles(Prefix + "*");
//Declare and initilize variables
//Get one Book(Excel file at a time)
foreach (FileInfo file in files)
{
FileCnt += 1;
MessageBox.Show(file.Name);
}
MessageBox.Show(FileCnt.ToString());
Dts.Variables["User::FileCnt"].Value =
Convert.ToInt32(FileCnt);
}
#region ScriptResults declaration
/// <summary>
/// This enum provides a convenient shorthand within the scope of
this class for setting the
/// result of the script.
///
/// This code was generated automatically.
/// </summary>
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion
}
}
затем я отредактировал ограничение приоритета и написал и выражение @FileCnt == 25, что означает, что следующая задача скрипта будет выполняться, только когда число файлов в папке равно 25. Теперь я хочу, чтобы первая задача скрипта выполнялась в цикл, пока папка не получит 25 файлов. я думаю, что нам нужно использовать контейнер foreachloop здесь. ты получил то, что я сейчас ищу??