Вы можете использовать задачу скрипта для достижения этого:
- В пакете создайте переменную типа string (пример:
@[User::FolderPath]
)
- Добавить задачу скрипта
- Выберите
@[User:FolderPath
как ReadWriteVariable
- Используйте похожий скрипт:
Сначала необходимо добавить using System.Linq;
, чтобы использовать функции Linq в скрипте
public void Main()
{
//Change the root folder value an specify the main directory that contains the folders you need to process
string rootfolder = @"C:\Customer\";
DateTime dt;
string[] folders = System.IO.Directory.GetDirectories(rootfolder, "*", System.IO.SearchOption.TopDirectoryOnly);
string maxdatefoldername = folders.Select(x => System.IO.Path.GetFileName(x))
.Where(y => DateTime.TryParseExact(y,"MMddyyyy",System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.None,out dt) == true)
.OrderByDescending(z => DateTime.ParseExact(z, "MMddyyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None)).FirstOrDefault();
string maxfolder = folders.Where(x => System.IO.Path.GetFileName(x) == maxdatefoldername).FirstOrDefault();
Dts.Variables["User:FolderPath"].Value = maxfolder;
Dts.TaskResult = (int)ScriptResults.Success;
}