Как получить дерево диска?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Как получить дерево диска?

Сообщение |kerish| » 03.04.2005 (Вс) 10:37

Как получить дерево диска?
Желательно очень быстрый способ.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.04.2005 (Вс) 11:18

а) Рекурсия
б) Поиск по форуму

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 03.04.2005 (Вс) 11:28

А по другому никак.
Рекурсией ОЧЧЧЧЕНЬ медленно получается :(

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.04.2005 (Вс) 11:31

Дерево диска нигде не сохраняется, поэтому надо каждый раз по-новому его строить...

Если дерево в TreeView выводишь, то оптимальнее будет сначала пробегать дерево на 2-3-4 папки в глубину от корня, потом по клику на нужном Node пролистывать выделенную папку дальше, до упора.

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Очень быстро и просто но некрасиво ...

Сообщение xenomorph » 03.04.2005 (Вс) 11:35

Навскидку ...
(быстро и некрасиво *)
h = Shell tree /a >>1.txt
WaitForSingleObject
1.txt -> переменная
Kill 1.txt
--
Щаз сам скодю - самому нада 8).
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 03.04.2005 (Вс) 13:52

А кто-нибудь знает, как эту проблему решает Kaspersky Inspector?
Он у меня умудряется за каких-то десять минут (при первом запуске) обежать ВСЕ папки и файлы на компе и вдобавок проверить ВСЕ изменения и т.п., а потом на это уходит не больше 2-3 минут...

Вот бы такую скорость к себе в прогу :roll: :roll: :roll:
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 03.04.2005 (Вс) 18:31

project Meriwether?
http://vb.mvps.org/hardcore/html/famousexplorerscommoncontrols.htm
Не без глюков, но хорошее начало. Там применен такой подход: добавление подпапок в список происходит при открытии нужного узла дерева пользователем.
Моду создают модоки, а распространяют модозвоны.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.04.2005 (Вс) 19:52

...по совету Amed:lol:

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 03.04.2005 (Вс) 21:40

Дело в том, что мне нужен уже полный список диска.
И он должен получиться за 1-2 мин.
(Естественно имею ввиду папки)
Кроме рекурсии есть мысли?
Ведь Касперыч, WinCmd, и др. получают его за 20-30 сек.

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 03.04.2005 (Вс) 23:46

Писал для плеера. И я бы не сказал, что работает медленее, чем TotalCommander. Если только чуть-чуть.
Я его тебе чуть-чуть причесал, чуть-чуть откомментировал и удалил все лишнее. Смотри, может устроит.
Вложения
DiskTree.rar
(12.44 Кб) Скачиваний: 65

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 04.04.2005 (Пн) 7:13

(Сидит, задумчиво почёсывая подбородок) А что, весьма-весьма... И скорость приличная, и результат выводит... :D
Слушай, объясни мне, а что делает киворд Implement? Я ещё много чего не знаю в ВБ - авось когда-нить выучу :oops:
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 04.04.2005 (Пн) 8:09

Это для наследования. Я там простой интефейс соорудил, чтобы при обходе древа можно было процесс этот (сколько всего прочли, что читаем сейчас и т.п.) документировать (выводить на экран или еще чего).
Пользоваться просто, строки расскоментируй в FindFilesCallback и увидишь.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 04.04.2005 (Пн) 11:22

Отлично. xolod - жму руку!
Спасибо.

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 23.10.2005 (Вс) 21:57

2xolod тоф жму тебе руку 8) , дявно мне нужна была рекурсия замечательная, :roll: а что поиск по форуму иногда рулит!
On Fatal Error Resume Next


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 144

    TopList