public static void Main()
string fileToCheck = "XX19053010_DOK_01.csv";
string kliFileName = "XX19051510_KLI.csv";
DateTime importDate = new DateTime(2019, 5, 15);
string clientPrefix = GetClientPrefix(new [] { kliFileName }, importDate);
Console.WriteLine("Prefix klienta: " + clientPrefix);
string fileId = ExtractFileIdFromName(fileToCheck, importDate, clientPrefix);
Console.WriteLine("ID pliku: " + fileId);
public static string GetClientPrefix(string[] fileNames, DateTime importDate)
string kliFileName = fileNames.FirstOrDefault(i => i.IndexOf("KLI") > -1);
if (string.IsNullOrWhiteSpace(kliFileName))
throw new ArgumentException("W katalogu z importem, nie znaleziono pliku KLI");
int dateIdx = kliFileName.IndexOf(importDate.ToString("yyMMdd"));
throw new ArgumentException("Plik KLI nie zawiera daty");
return kliFileName.Substring(0, dateIdx);
public static string ExtractFileIdFromName(string fileName, DateTime importDate, string clientPrefix)
fileName = Path.GetFileName(fileName);
int dotIdx = fileName.IndexOf('.');
fileName = fileName.Substring(0, dotIdx);
fileName = fileName.Replace(importDate.ToString("yyyyMMdd"), "");
string clientDataPattern = clientPrefix + @"[0-9]{6}(00|10|1B)*";
fileName = System.Text.RegularExpressions.Regex.Replace(fileName, clientDataPattern, "");
fileName = System.Text.RegularExpressions.Regex.Replace(fileName, @"_[0-9]{2}", "");
return fileName.Replace("_", "")
.Replace(clientPrefix, "");