public static void Main()
var filePath = "1SomeReallyLongPath/2SomeReallyLongPath/3SomeReallyLongPath/4SomeReallyLongPath/5SomeReallyLongPath/6SomeReallyLongPath";
var workingFilePath = filePath;
var fileParts = filePath.Split('/');
var i = fileParts.Length - 1;
while(i >= 0 && workingFilePath.Length > maxFileLength)
fileParts[i] = fileParts[i].Substring(0, Math.Min(maxGroupLength, fileParts[i].Length));
workingFilePath = String.Join("/", fileParts);
if(workingFilePath.Length > maxFileLength)
workingFilePath = workingFilePath.Substring(0, maxFileLength);
workingFilePath = workingFilePath.Trim('/');
Console.WriteLine(filePath);
Console.WriteLine(workingFilePath);