FolderBrowserDialog занимает несколько месяцев, чтобы перечислить подпапки папки, расположенной на USB-диске - PullRequest
0 голосов
/ 24 июня 2009

Использование FolderBrowserDialog на USB-накопителе занимает несколько минут, чтобы предлагать подпапки (независимо от того, сколько там подпапок). В то время как Windows Explorer показывает их относительно быстро.

Код, который я использую:

if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) {
  //grab value
}

Я перехожу на USB-накопитель и нажимаю на папку в корне, чтобы ждать много времени.

Это .NET 2.0 SP1 (32-разрядный исполняемый файл) на Windows Server 2003 x64

Есть ли известная причина для этого? Почему это занимает намного больше времени, чем Windows Explorer?

Беглый поиск в Google показывает, что я один в этом. Я обнаружил ссылки на сбой в 64-битных системах, но на самом деле я не получаю сбой, если подожду несколько минут, чтобы он заработал.

Ответы [ 2 ]

0 голосов
/ 04 марта 2010

К какой версии USB-порт вы подключены? 1.0 / 1.1 займет намного больше времени, чем 2.0. Кроме того, если у вас есть версия Windows, которая выполняет скрытую индексацию подключенных устройств, она могла быть проиндексирована к тому времени, когда вы щелкнули по ней в Проводнике; ваша функция, если можно так выразиться, «живая и личная».

0 голосов
/ 24 июня 2009

Вы пытались отладить проводник Windows, который вызывает системный вызов при открытии подпапок? И сделать то же самое для вашего приложения? Либо есть разница в системном вызове, либо он делает что-то большее. Или в последнем случае он терпит неудачу много раз и только несколько раз удачно.

...