На компьютере Vista с допустимым путем C: \ Users \ David, вызывая Directory.GetFiles (@ "C: \ Users \ David"), выдает следующее исключение ArgumentException при запуске от имени пользователя David, который может просматривать содержимое каталог просто отлично в проводнике Windows:
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
Возможно, к компьютеру с Vista обращался Mac с MacFuse, поэтому каталог содержит файл, который выглядит так, как будто он называется "._Icon", но на самом деле должен содержать некоторые недопустимые символы. Я считаю, что это источник ошибки. Я остаюсь с проблемой того, что делать, когда Directory.GetFiles () выдает исключение, когда он сталкивается с именем файла, которое ему не нравится? Существуют ли альтернативные способы составления списка содержимого файлов, которые не проходят через такое исключение?
Что касается этого конкретного файла, я подозреваю, что имя файла должно содержать некоторые символы, не отображаемые в проводнике Windows или командной строке:
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
И наконец:
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
Глядя на файл через SMB, похоже, что файл на самом деле называется "._Icon?". Каждый раз, когда я пытаюсь удалить файл с Mac, файл, кажется, немедленно появляется снова.