Мне нужно загрузить 2 плоских файла в таблицу SQL Server. Плоские файлы загружаются в папку. У него есть тысячи других файлов. Если бы это был один и тот же файл с разными датами, я бы использовал цикл foreach и сделал это ... но вот сценарий.
Имена файлов, которые я хочу загрузить, следующие:
Есть много других файлов, некоторые из которых Payment_Stat_Data
или Non_Payment_Stat_Data
без части даты в конце. Мы не хотим загружать их в таблицу.
Я попытался использовать код задачи сценария c #, и он дал мне последний файл, но не тот, который мы хотели загрузить.
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.IO;
namespace ST_2650e9fc7f2347b2826459c2dce1b5be.csproj
{
[System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
#region VSTA generated code
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion
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;
}
}
}
Источник: http://www.techbrothersit.com/2013/12/ssis-how-to-get-most-recent-file-from.html
Код работает, но выдает еще один последний плоский файл ... Я хочу только извлечь файлы Non_Payment_Stat_Data1_12_2017.txt
и Payment_Stat_Data1_12_2017.txt
. Дата будет меняться каждый день.