Join joins any number of path elements into a single path,
separating them with slash. Empty elements are ignored.
The result is Cleaned. However, if the argument
list is empty or all its elements are empty, Join returns
an empty string.
Split splits path immediately following the final Separator,
separating it into a directory and file name component.
If there is no Separator in path, Split returns an empty dir
and file set to path.
The returned values have the property that path = dir+file.