Late to the party here, but I’d use the Path helpers:
def segment_path(path) when is_binary(path) do
do_segment_path(path)
|> Enum.reverse()
end
defp do_segment_path("/"), do: []
defp do_segment_path(path) do
[ { Path.basename(path), path } | do_segment_path(Path.dirname(path)) ]
end


















