Вам нужно будет использовать Foreach Loop Task
.
В редакторе циклов Forech выполните следующие действия:
Используйте тип Foreach File Enumerator
и укажите для папки C:\Users\tngo\File\
.Ваш подстановочный знак «Файлы» будет *.json
, и вы должны проверить Fully qualified
в Retrieve file name
.После этого нажмите Variable Mapping
в левой панели редактора и создайте новую строковую переменную, которая будет содержать полное имя файла.Для этого примера мы назовем наш ForEachLoop_StringVar
.
После создания цикла перетащите Script Task
в Foreach Loop
, а затем дважды щелкните Script Task
, чтобы открыть Script Task Editor
.Добавьте строковую переменную, которую вы создали выше, как ReadOnlyVariables
, а затем нажмите кнопку Edit Script...
, чтобы открыть ваш скрипт.Затем вы можете изменить жестко закодированное имя файла со ссылкой на вашу переменную.Ваш код сценария будет выглядеть примерно так:
public override void CreateNewOutputRows()
{
String jsonFileContent = File.ReadAllText((string)Dts.Variables["User::ForEachLoop_StringVar"].Value);
JavaScriptSerializer js = new JavaScriptSerializer();
List<IGData> igdatas = js.Deserialize<List<IGData>>(jsonFileContent);
foreach (IGData igdata in igdatas)
{
Output0Buffer.AddRow();
Output0Buffer.piececount = igdata.piececount;
Output0Buffer.wgt = igdata.wgt;
}
}