Addressing breaking IFileSystem changes

@pranavkm
Sure I will fix that.. that optimizes a bit. 

Though that can still permit patterns like `////`:). The checks here are just making a very little invalid input rejection like null/empty check in the beginning. I see trimming `~/` or `/` is more of accepting more common file path representations.