Как переносить файлы после определенной даты при использовании контейнера циклов по каждому элементу служб SSIS

В настоящее время создан пакет служб SSIS, который проходит через папку и возвращает последний файл в зависимости от имени файла. Я сделал это, используя контейнер Foreach Loop.

При тестировании все работало нормально, я использовал около 20 файлов, все работало нормально. Однако при попытке поместить это в живую среду, где он обрабатывает около 200+ файлов, он терпит неудачу, поскольку старые файлы немного изменяются, чего я не знал при первом создании пакета.

Мне действительно нужно перенести файлы только с даты 03.01.2020 и далее, но я не могу удалить старые файлы из своего местоположения.

Есть ли способ изменить пакет, чтобы он вообще возвращал файлы только с этой даты? И если да, то как бы я это сделал?

Привет заранее


person Wil-Liam    schedule 01.09.2020    source источник
comment
20200301 в имени файла?   -  person billinkc    schedule 01.09.2020
comment
Нет, только дата в SQL, удалена во избежание дальнейшей путаницы.   -  person Wil-Liam    schedule 01.09.2020
comment
Я не понимаю - если дата не указана в имени файла, а формат файла изменился между датой эпохи, как вы можете определить, что находится в области обработки, а что выходит за рамки?   -  person billinkc    schedule 01.09.2020
comment
Все в порядке, в конце концов я отсортировал его, я создал таблицу для проверки и вручную вставил туда все имена файлов, так что теперь он пропустит их все к нужным мне файлам. Также извиняюсь, я не читал ваш комментарий правильно, дата была в имени файла, поэтому, например, имена файлов были в формате «File_Name_2017-01-01», поэтому я знал, какие файлы мне нужно было пропустить, но просто не знал, как это сделать это, но таблица для проверки, был ли загружен файл или нет, работала   -  person Wil-Liam    schedule 01.09.2020


Ответы (1)


вы можете использовать свойства файла, чтобы получить последний файл для обработки:

var directory = new DirectoryInfo("C:\\MyDirectory");
var myFile = directory.GetFiles()
             .OrderByDescending(f => f.LastWriteTime)
             .First();

вы также можете добавить туда:

var myFile = directory.GetFiles()
             .Where(f=>f.LastWriteTime>=DateTime.Parse("1/3/2020"))
             .OrderByDescending(f => f.LastWriteTime)
             .First();
person KeithL    schedule 01.09.2020
comment
Спасибо @KeithL, то, что я создал, пока работает, однако, когда у меня будет больше времени, я проверю это! Спасибо за публикацию - person Wil-Liam; 10.09.2020