Я использую следующий код в рекурсивном вызове:
var files = di.GetFiles("*.jpg");
di - это DirectoryInfo, который передается в функцию.Предположим, файл tiger.jpg находится в корне диска k.Иногда результатом является не k: \ tiger.jpg, а k: \ iger.jpg.Я понятия не имею, почему или как.Кто-нибудь когда-либо имел такое же поведение?
Редактировать 1 : Кажется, это происходит даже с именами каталогов, потому что рекурсивная функция не выводит изображения в подкаталоге.Я думаю, что это в основном FAT (потому что он обычно читает с носителя, такого как SD-карта или USB-накопитель, иногда с DVD или CD).
Полное имя каждого возвращенного объекта FileInfo сигнализируется с помощью события.Получатель создает новый объект, который принимает путь в качестве аргумента для конструктора.Затем конструктор вызывает метод, который использует путь для получения информации о файлах jpeg:
FileStream fs = File.Open ( this.Path, FileMode.Open );
Image img = Image.FromStream ( fs, false, false );
Здесь происходит исключение.Когда я получаю файлы от вызова компонента инфраструктуры, я не проверяю их снова явно, я могу встроить это в систему, но это не решает мою проблему.
Одна вещь, которую я забыл:Это не происходит в наших тестовых системах, но в системах по всему миру: (