Note : I\'ve replace the directory with a
and the exe with b.exe
and I\'ve repeat every test I have made to make sure it\'s not a typi
It's some extra non-printable bytes added in file path when Copying / Pasting from some labels in Windows 10 explorer.
Consider this piece of code :
Console.WriteLine(new DirectoryInfo(@"c:\a\"));
Console.WriteLine(new DirectoryInfo(@"c:\a\"));
These line looks the same and should not raise any exception (even if directory c:\a
doesn't exist) but actually if you copy/paste the code above in an application, the second line will raise NotSupportedException
with words : "The given path's format is not supported".
I've ended up checking .NET source code and I found method StringExpressionSet.Canonicalize which raised NotSupportedException :
...
if (path.IndexOf( ':', 2 ) != -1)
throw new NotSupportedException( Environment.GetResourceString( "Argument_PathFormatNotSupported" ) );
...
And actually :
Console.WriteLine(@"c:\a\".IndexOf( ':', 2 )); // results -1
Console.WriteLine(@"c:\a\".IndexOf( ':', 2 )); // result 2
// Copy/Paste to test
In order to not making any typing mistake, I'm used to copy directory path from Right Click to a file -> Properties
-> Security
You are warned now !