Определение наличия подкаталогов
От: Eugene.Kosmin  
Дата: 18.02.08 11:48
Оценка:
Пишу tree-view control для отображения содержимого файловой системы. Аналог используемого в windows explorer’е.

Беда в том, что скорость раскрытия каталога у моего tree-view control’а и стандартного из explorer’а отличаются на порядок при работе с сетевыми дисками.

Узким местом является получение атрибута SFGAO_HASSUBFOLDER из IShellFolder::GetAttributesOf(). Т.е. если не определять, есть ли у каталога подкаталоги, то со скоростью все нормально, но тогда не удается правильно поставить «крестики для раскрытия».

Сталкивался ли кто-нибудь с чем-либо подобным? Если да, то как выходил из ситуации? Может быть есть другие пути обнаружения подкаталогов?
Re: Определение наличия подкаталогов
От: Hacker_Delphi Россия  
Дата: 18.02.08 12:47
Оценка: 1 (1)
Здравствуйте, Eugene.Kosmin, Вы писали:

EK>Сталкивался ли кто-нибудь с чем-либо подобным? Если да, то как выходил из ситуации? Может быть есть другие пути обнаружения подкаталогов?

Если посмотришь на Эксплорер — он иногда плюсики ставит сразу, а потом они пропадают... для сетевых дисков, насколько я помню, всегда так...
видимо они сперва показывают все, а потом в фоновом режиме начинают проверять, а надо ли плюсики ставить...
К тому же, если нет расшареных дисков/принтеров — компьютер в списке просто не появится — можешь смело ставить плюсик, если тебя устраивает такая ситуация...
... << RSDN@Home 1.2.0 alpha rev. 789>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[2]: Определение наличия подкаталогов
От: Eugene.Kosmin  
Дата: 18.02.08 13:03
Оценка:
Здравствуйте, Hacker_Delphi, Вы писали:

H_D>Если посмотришь на Эксплорер — он иногда плюсики ставит сразу, а потом они пропадают... для сетевых дисков, насколько я помню, всегда так...

H_D>видимо они сперва показывают все, а потом в фоновом режиме начинают проверять, а надо ли плюсики ставить...
H_D>К тому же, если нет расшареных дисков/принтеров — компьютер в списке просто не появится — можешь смело ставить плюсик, если тебя устраивает такая ситуация...

Плюсик всегда ставит конечно можно, но как-то некрасиво...

Не помню как в XP’хе, но в Vista explorer в этом плане работает стабильно: папки открывает быстро, плюсики ставит там, где надо. По крайней мере, не похоже, чтобы background’ом атрибуты определялись.

Либо там офигенный алгоритм «предсказания переходов», либо все-таки есть другой способ...
Re[3]: Определение наличия подкаталогов
От: quodum  
Дата: 18.02.08 16:10
Оценка: 2 (1)
Здравствуйте, Eugene.Kosmin, Вы писали:

[]

EK>Плюсик всегда ставит конечно можно, но как-то некрасиво...


EK>Не помню как в XP’хе, но в Vista explorer в этом плане работает стабильно: папки открывает быстро, плюсики ставит там, где надо. По крайней мере, не похоже, чтобы background’ом атрибуты определялись.


EK>Либо там офигенный алгоритм «предсказания переходов», либо все-таки есть другой способ...



Здесь и про XP, и про Висту.
Re[4]: Определение наличия подкаталогов
От: Eugene.Kosmin  
Дата: 19.02.08 04:25
Оценка:
Q>Здесь и про XP, и про Висту.

Спасибо. Видимо придется background'ом...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.