public static void Main()
string path1 = @"Volumes/data/tmp/trunk/Core Library/Samples/One Shots/Drums/Snare/Snare 505.aif";
string path2 = @"Applications/Ableton Live 12 Suite.app/Contents/App-Resources/Core Library/Racks/Drum Racks/Drum Machines";
string absolutePath = CombineFromCommonPath(path2, path1);
Console.WriteLine("Parte relativa da applicare: " + absolutePath);
public static string CombineFromCommonPath(string absolutePath, string relativePath)
string[] relativePathList = relativePath.Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
string[] absolutePathList = absolutePath.Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
for (int i = 0; i < absolutePathList.Length; i++)
for (int j = 0; j < relativePathList.Length; j++)
if (absolutePathList[i].Equals(relativePathList[j], StringComparison.OrdinalIgnoreCase))
if (endAbsolute != -1) break;
relativePath = string.Join("/", relativePathList[(startRelative + 1)..]);
absolutePath = Path.Combine(string.Join("/", absolutePathList[0..(endAbsolute)]), relativePath);