which one is better to use and why? I mean in which aspects these two commands differ and how? Performance, readability, ...
new FileInfo(path).Name or
new FileInfo(path).Name
Performancewise Path.GetFilename() will outperform the other version as it is static. Your first version creates an object which has to be instantiated and garbage collected.
Readability: Path.GetFilename() clearly wins IMHO!
The way they figure out the name won't differ much I think.