Я хочу импортировать файл CSV из папки, в которой ежедневно находятся похожие файлы. Поскольку мне нужно обрезать целевой sql-сервер перед вставкой, мне нужен только самый последний файл из источника. Я создаю пакет служб Integration Services (dtx), который можно запустить без ручного изменения имени исходного файла.
Используйте задачу сценария C#. Откройте каталог, отсортируйте файлы по дате и возьмите самое новое имя файла, используйте это имя файла в строке подключения к плоскому файлу (используйте переменную для строки подключения имени файла) и заполните это из задачи C#.
Вы должны создать задача сценария и использовать приведенный ниже код:
public void Main()
{
// TODO: Add your code here
var directory= new DirectoryInfo(Dts.Variables["User::VarFolderPath"].Value.ToString());
FileInfo[] files = directory.GetFiles();
DateTime lastModified = DateTime.MinValue;
foreach (FileInfo file in files)
{
if (file.LastWriteTime > lastModified)
{
lastModified = file.LastWriteTime;
Dts.Variables["User::VarFileName"].Value = file.ToString();
}
}
MessageBox.Show(Dts.Variables["User::VarFileName"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
}
Приведенный выше код является просто ссылкой, вы должны изменить в соответствии с вашими собственными переменными, а также отфильтровать по собственное соглашение об именах файлов
Так что тебе мешает? Какой у Вас вопрос?