CSharp · Console
using System;
public class Program
{
public static void Main()
{
var someTestFileNames = new []{
"myFile.txt","myTarGz.tar.gz"
};
foreach( var tester in someTestFileNames)
Console.WriteLine(DatifyFileName(tester));
}
/*
public static string DatifyFileName(string fileName)
{
var nameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName);
var extension = System.IO.Path.GetExtension(fileName);
return $"{nameWithoutExtension}_{DateTime.Now.ToUniversalTime().ToString("THHmmssfff")}{extension}";
}
*/
public static string DatifyFileName(ReadOnlySpan<char> fileName)
{
var lastDotIndex = fileName.LastIndexOf('.');
//Maybe : if( lastDotIndex < 0 ) throw ArgumentException("no extension found");
var nameWithoutExtension = fileName[..lastDotIndex];
var extension = fileName[lastDotIndex..];
return $"{nameWithoutExtension}_{DateTime.Now.ToUniversalTime().ToString("THHmmssfff")}{extension}";
}
}