Задача сценария расширения файла и обработка ошибок

У меня буквально нет опыта работы со сценариями VB или C#. Я создал этот пакет SSIS с помощью некоторого онлайн-учебника, который соответствует моей цели, но мне нужно настроить его в соответствии со своими требованиями.

Текущий сценарий:

Я пытаюсь запустить пакет SSIS, который имеет контейнер цикла для каждого, который импортирует файлы с расширением *.txt в каталог, поскольку имена файлов не являются постоянными. За этим контейнером цикла for-each следуют некоторые другие задачи SQL.

Пакет выполняется успешно, даже если в каталоге нет файлов (Возможно, я сделал что-то не так при создании задач контейнера и потока данных, задач файловой системы). Это приводит к успешному выполнению сценария SQL в конце контейнера цикла for-each, что приводит к неверным данным.

Требование.
Пакет должен завершиться ошибкой, если в каталоге нет файла. Я должен реализовать скрипт перед каждым контейнером цикла, но не знаю, как это сделать. Любые выводы будут оценены!

Я сделал что-то вроде этого, но не уверен, как искать по расширению, а не по имени файла:

Public Sub Main()
    '
    ' Add your code here
    '
    Dim fileName As String
    fileName = "filename.txt"

    If System.IO.File.Exists(fileName) Then
        Dts.Variables("User::bolFileExists").Value = True
    Else
        Dts.Variables("User::bolFileExists").Value = False
    End If

    Dts.TaskResult = ScriptResults.Success
End Sub

person intruder    schedule 14.01.2019    source источник


Ответы (2)


Вы должны использовать функцию System.IO.Directory.GetFiles().

If System.IO.Directory.GetFiles(<your path goes here>, "*.txt", SearchOption.AllDirectories).Length = 0 Then 
   Dts.Variables("User::bolFileExists").Value = False
Else
    Dts.Variables("User::bolFileExists").Value = True
End If
person Hadi    schedule 15.01.2019

Ниже будет мое предложение, я сделал то же самое в одном из своих требований, используя раздел обработки событий, что базовый DFT не запущен, тогда сценарий на странице обработчика событий вызовет ошибку. Следует отметить, что DFT запускается по крайней мере один раз, если в каталоге есть какой-либо файл, и ошибка, возникающая, если она не запускается, будет простой, а не написанием сложного сценария.

Спасибо, Шринивас

person sree    schedule 15.01.2019
comment
Не могли бы вы привести пример? (Можно фрагмент или ссылку?) - person intruder; 15.01.2019