Извините за второй ответ, но я думаю, что вижу логическую ошибку ...
Я предполагаю, что на каждой итерации вы хотите искать файлы в текущей папке и получить подкаталоги, затем передать их обратно в функцию (кстати, неплохо использовать рекурсию) и повторять до тех пор, пока подкаталогов больше не будет. дочерние каталоги текущего каталога, а затем рекурсивно вызывает функцию для дочерних папок.Это будет означать, что на самом низком уровне не будет дочерних папок, и вы получите там ошибку.Это не объясняет, почему ошибка возникает в первой папке.
попробуйте изменить это
void DirSearch(string sDir)
{
foreach (string d in Directory.GetDirectories(sDir))
{
//I get an IOException here on the first iteration
//saying "There are no more files" and f is null
//even though there are subdirectories
foreach (string f in Directory.GetFiles(d, "*.JPG"))
{
BulletedList1.Items.Add(f);
}
DirSearch(d);
}
}
на это
void DirSearch(string sDir)
{
foreach (string f in Directory.GetFiles(sDir, "*.JPG"))
{
BulletedList1.Items.Add(f);
}
foreach (string d in Directory.GetDirectories(sDir))
{
//I get an IOException here on the first iteration
//saying "There are no more files" and f is null
//even though there are subdirectories
DirSearch(d);
}
}