У меня есть удаленная папка, откуда я выбираю несколько файлов и прокручиваю их для каждого контейнера цикла. Но сначала я хочу выбрать первый файл, основанный на отметке времени из этой папки. как это сделать в SSIS?как выбрать первый файл из определенной папки, используя для каждого в SSIS
ответ
Сначала вы заяц создать 2 переменные
FolderPath (string) -- to store the folder you have to manipulate dtFiles (Object) -- to store files from this folder
Добавить задачу сценария и выберите путь_к_папку в ReadOnlyVariable и dtFiles в READWRITE Variable
В скрипте написать следующий код
Imports System.Collections.Generic Imports System.Linq Public Sub Main() Dim strFolderPath As String = Dts.Variables.Item("FolderPath").Value.ToString Dim lstFiles As New List(Of IO.FileInfo) For Each strFile As String In IO.Directory.GetFiles(strFolderPath, "*.*", IO.SearchOption.AllDirectories) Dim fi As New IO.FileInfo(strFile) lstFiles.Add(fi) Next Dts.Variables.Item("dtFiles").Value = lstFiles.OrderBy(Function(x) x.CreationTime).Select(Function(x) x.FullName).ToList End Sub
Подключить sc ript task для каждого цикла Контейнер
Двойной щелчок на контейнере ForEach Loop и изменение типа перечислителя на перечислитель ADO и выбор переменной dtFiles в качестве источника (на вкладке коллекции) и выбор режима перечисления (строки из первая таблица)
в закладке переменного отображения (в для каждого контейнера петли) отображает индекс 0 новый переменная т.е. FileName (Вы можете использовать его, чтобы сделать вашу работу)
Примечания: я используя отсортированные файлы, используя CreationTime. Вы даже можете использовать LastAccessTime и LastWriteTime свойства
Просто добавьте значение путь_к_папке переменной и выполнение
Что такое версию, которую вы используете? – Hadi
visual studio 2013 – chits
Удаленная папка означает FTP или просто сетевой путь? Является ли первая старая временная метка времени, самая старая временная метка изменения, самая старая временная метка доступа? – billinkc