Must handle relative and absolute paths.