Чтобы скопировать файлы на основе даты их последнего изменения, вам понадобится сценарий для копирования этих файлов.Класс FileInfo
имеет свойство LastWriteTime
, которое можно использовать для проверки даты последнего изменения файла.Приведенный ниже пример C # иллюстрирует это с помощью переменных SSIS, которые содержат имена папок источника и назначения, а также другую переменную SSIS для количества дней с текущей даты.Я предполагаю, что вас интересует только день, а не время, когда файл был изменен, поэтому LastWriteTime
и дата (текущая дата минус заданное количество дней) представлены только в формате даты.
DirectoryInfo sourceFolder = new DirectoryInfo(Dts.Variables["User::SourceFolder"].Value.ToString());
string destFileName;
string sourceFileName;
int daysBehind = Convert.ToInt32(Dts.Variables["User::DaysFromToday"].Value);
string destFolder = Dts.Variables["User::DestinationFolder"].Value.ToString();
var allFiles = sourceFolder.EnumerateFiles("*.*", System.IO.SearchOption.AllDirectories).Where(path
//make sure to use the Date property to omit times from the comparison
=> path.LastWriteTime.Date == DateTime.Today.Date.AddDays(daysBehind)).ToList();
foreach (FileInfo fi in sourceFolder.GetFiles())
{
sourceFileName = System.IO.Path.GetFileName(fi.ToString());
destFileName = System.IO.Path.Combine(destFolder, sourceFileName);
System.IO.File.Copy(fi.FullName, destFileName, true);
}