Hi @Martyn Griggs,
It is very easy to implement via SSIS Script Task.
void Main()
{
const String OriginalFileDirectory = @"e:\Tempy";
const String fileWildcard = "*.csv";
try
{
string[] fileEntries = Directory.GetFiles(OriginalFileDirectory, fileWildcard);
if (fileEntries.Length > 0)
{
string RenamedFileFullyQualified = string.Empty;
string caseSwitch = string.Empty;
string FileName = string.Empty;
foreach (string fileFullyQualifiedPath in fileEntries)
{
caseSwitch = Path.GetFileNameWithoutExtension(fileFullyQualifiedPath);
switch (caseSwitch)
{
case string s when s.StartsWith("Header"):
FileName = "Header";
break;
case string s when s.StartsWith("Details"):
FileName = "Details";
break;
}
// concise version
//FileName = (caseSwitch.StartsWith("Header") ? "Header" : caseSwitch.StartsWith("Details") ? "Details" : "Unknown");
RenamedFileFullyQualified = Path.Combine(
Path.GetDirectoryName(fileFullyQualifiedPath),
FileName +
Path.GetExtension(fileFullyQualifiedPath));
File.Move(fileFullyQualifiedPath, RenamedFileFullyQualified);
Console.WriteLine("Renamed '{0}' file into '{1}'", fileFullyQualifiedPath, RenamedFileFullyQualified);
}
}
else
{
Console.WriteLine("No files '{0}' in the folder '{1}'", fileWildcard, OriginalFileDirectory);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
@Yitzhak Khabinsky Yes, I can use Script task, though I’m not great at C#