Function Kata “File Path Helper”


Write a function to guarantee a file path to be absolute, e.g.

string FilePathHelper.MakeAbsolute(string filePath)

The function detects if a path is relative and if so converts it to an absolute path by treating ~, ., .. appropriately. The absolute path should not contain such “placeholders” anymore.


  • “~/Downloads/mountains.jpg” becomes “/Users/brucew/Downloads/mountains.jpg” (with “/Users/brucew” being the current home directory)
  • “./bin/debug/samples/config.json” becomes “/Users/brucew/Projects/ETF/bin/debug/samples/config.json” (with “/Users/brucew/Projects/ETF” being the current working directory)
  • “/Users/brucew/Projects/ETF/bin/../program.cs” becomes “Users/brucew/Projects/ETF/program.cs”

The path delimiter is dependent on the operating system at runtime, e.g. \ on Windows and / on Linux/macOS.

On Windows a drive prefix like c: should be retained.