考えられるすべてのファイル名のリストを作成しようとするのではなく、フォルダー内のすべてのファイルをループ処理し、スクリプト タスクを使用して、さらに処理するファイルを決定します。
制御フローは次のようになります。

のFELC_InputFolderContents
変数マッピングを次のように設定します。

SCR_SetProcessFileFlag
の構成:

SCR_SetProcessFileFlag
のスクリプトは次のようになります。
public void Main()
{
string targetFileFullPath = (string)Dts.Variables["User::TargetFileFullPath"].Value;
string targetFileName = Path.GetFileName(targetFileFullPath);
Dts.Variables["ProcessFileFlag"].Value = IsValidFileName(targetFileName);
Dts.TaskResult = (int)ScriptResults.Success;
}
private bool IsValidFileName(string targetFileName)
{
bool result = false;
if (Path.GetExtension(targetFileName) == "xls")
{
string fileNameOnly = Path.GetFileNameWithoutExtension(targetFileName);
if (fileNameOnly.Substring(0, 4) == "ABC_" || fileNameOnly.Substring(0, 4) == "XYZ_")
{
string datePart = fileNameOnly.Substring(4);
DateTime dateRangeStart = DateTime.Today.AddDays(-7);
DateTime dateRangeEnd = DateTime.Today;
DateTime fileDate;
if (DateTime.TryParse(datePart, out fileDate))
{
if (dateRangeStart <= fileDate && fileDate <= dateRangeEnd)
{
result = true;
}
}
}
}
return result;
}
と の間の優先順位の制約は次のようSCR_SetProcessFileFlag
にDTT_ProcessSelectedFile
構成
されます。
(明らかに、特定のロジックはIsValidFileName
特定の要件によって異なります。)