c # Класс FileInfo, используемый в каталоге задач скрипта служб SSIS. GetFiles SearchOption.TopDirectoryOnly игнорируется - PullRequest
0 голосов
/ 17 декабря 2018

Я использую следующую задачу «Сценарий» для перечисления по каталогу файлов, затем извлекаю список файлов и загружаю их в пункт назначения набора записей.Я не хочу углубляться в каталог, который я указал в своем поиске @ "E: \ Data Warehouse \ Imports \ TIMECLOCK".Внутри TIMECLOCK есть последующая папка с именем PROCESSED, куда она должна переместить файлы позже.Так что я только пытаюсь взять те, что в папке выше, TIMECLOCK.Таким образом, я использовал SearchOption.TopDirectoryOnly в функции Directory.GetFiles, но он углубляется в папку PROCESSED, о чем свидетельствует мой Просмотрщик данных (см. Скриншот просмотра данных после кода).Сначала я использовал переменную для передачи в каталог поиска, но он делал то же самое, поэтому я явно объявил каталог поиска, и он все еще не работает.Я не знаю, что я делаю не так!

#region Namespaces
using System;
using System.Data;
using System.IO;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
#endregion


[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent{

public override void CreateNewOutputRows()
{
    string sourceDirectory = @"E:\Data Warehouse\Imports\TIMECLOCK";
    string searchFileName = "Business Units GL Segments_Sent Weekly*";
    string[] files = Directory.GetFiles(sourceDirectory, searchFileName, SearchOption.TopDirectoryOnly);

    FileInfo fileInfo = new FileInfo(sourceDirectory);

    foreach (string file in files)
    {
        String FileFullPath = Path.GetFullPath(file);
        fileInfo = new FileInfo(FileFullPath);
        OrderedFilesBuffer.AddRow();
        OrderedFilesBuffer.FileName = fileInfo.Name;
        OrderedFilesBuffer.FileDate = fileInfo.LastWriteTime;
        OrderedFilesBuffer.FilePath = fileInfo.FullName;
    }
  }
}

DataViewer

1 Ответ

0 голосов
/ 18 декабря 2018

Я отмечаю как отвеченный, потому что я все еще не совсем уверен, почему это происходит, и я в конечном итоге решил, что я пытался воспроизвести, записав значения в (2) файловые объекты, затем объединив и получив уникальный список файловмежду ними для обработки, была действительно простая задача перемещения файла.Я писал это для клиента, который изначально проектировал его в Pentaho Data Integration и воспроизводил его именно в SSIS, когда в этом не было особой необходимости.Я думаю, так как я выполнял оба этих извлечения одновременно в одном потоке управления, он использовал один и тот же путь к файлу для обоих из-за какой-то проблемы с кешем и игнорировал TopDirectoryOnly.Во всяком случае, я уничтожил это и сделал все заново.

...