Addressing breaking IFileSystem changes

@pranavkm
This code now supports a path such as `~foo.bar`, which isn't valid. I think realistically there still need to be two checks: one for `~/` and one for `/`.