2016-11-07 12 views
1

У меня есть удаленная папка, откуда я выбираю несколько файлов и прокручиваю их для каждого контейнера цикла. Но сначала я хочу выбрать первый файл, основанный на отметке времени из этой папки. как это сделать в SSIS?как выбрать первый файл из определенной папки, используя для каждого в SSIS

+0

Что такое версию, которую вы используете? – Hadi

+0

visual studio 2013 – chits

+0

Удаленная папка означает FTP или просто сетевой путь? Является ли первая старая временная метка времени, самая старая временная метка изменения, самая старая временная метка доступа? – billinkc

ответ

0
  1. Сначала вы заяц создать 2 переменные

    FolderPath (string) -- to store the folder you have to manipulate 
    
    dtFiles (Object) -- to store files from this folder 
    
  2. Добавить задачу сценария и выберите путь_к_папку в ReadOnlyVariable и dtFiles в READWRITE Variable

  3. В скрипте написать следующий код

    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 
    
  4. Подключить sc ript task для каждого цикла Контейнер

  5. Двойной щелчок на контейнере ForEach Loop и изменение типа перечислителя на перечислитель ADO и выбор переменной dtFiles в качестве источника (на вкладке коллекции) и выбор режима перечисления (строки из первая таблица)

  6. в закладке переменного отображения (в для каждого контейнера петли) отображает индекс 0 новый переменная т.е. FileName (Вы можете использовать его, чтобы сделать вашу работу)

Примечания: я используя отсортированные файлы, используя CreationTime. Вы даже можете использовать LastAccessTime и LastWriteTime свойства

Просто добавьте значение путь_к_папке переменной и выполнение

script Task properties

For Each Loop Enumerator

For Each Loop variable mapping

Control Flow preview

 Смежные вопросы

  • Нет связанных вопросов^_^