You might also want to protect against malformed filenames - GetFullPath can raise an exception if the file name contains an illegal character, for example.  Using a GetFullPathSafe which catches exceptions and returns the original string is problaably enough