On a Vista machine with a valid path C: \ Users \ David, a call to Directory.GetFiles (@ "C: \ Users \ David") throws the following ArgumentException on startup as user David, who can view the contents of the directory just fine in Windows Explorer:
System.ArgumentException message: Illegal characters in path.
Argument: ""
Stack trace:
at System.IO.Path.CheckInvalidPathChars(String path)
at System.IO.Path.InternalCombine(String path1, String path2)
at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)
at System.IO.Directory.GetFiles(String path, String searchPattern, SearchOption searchOption)
at System.IO.Directory.GetFiles(String path)
at Microsoft.Samples.XFileExplorer.ContentView.CreateContentDataTable(String CurrentFolder) in C:\Users\david\Downloads\MEF Preview 5\MEF Preview 5\Samples\XFileExplorer\XFileExplorer\ContentView.xaml.cs:line 108
A Vista machine that the Mac had access to uses MacFuse, so the directory contains a file similar to the name "._Icon", but should actually contain some invalid characters. I think this is the source of the error. I am left with the problem of what to do when Directory.GetFiles () throws an exception when it encounters a file name that it doesn't like? Are there alternative ways to list the contents of files that do not go through this exception?
Regarding this particular file, I suspect that the file name should contain some characters that are not displayed in Windows Explorer or the command line:
C:\Users\david>dir ._Icon
Volume in drive C is Bootcamp
Volume Serial Number is XXXX-XXX
Directory of C:\Users\david
File Not Found
And finally:
C:\Users\david>dir ._Icon*
Volume in drive C is Bootcamp
Volume Serial Number is XXXX-XXX
Directory of C:\Users\david
05/25/2008 07:40 AM 43,296 ._Icon
1 File(s) 43,296 bytes
0 Dir(s) 58,950,623,232 bytes free
Looking at the file via SMB, it looks like the file is actually called "._Icon?" Every time I try to delete a file from a Mac, it seems that the file immediately appears.