Файлы и папки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
AHDPE@ich
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 14.07.2008 (Пн) 10:25
Откуда: Ульяновск

Файлы и папки

Сообщение AHDPE@ich » 22.09.2008 (Пн) 15:14

Как быстро отобразить список всех папок(включая подпапки) и файлов на винте?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Файлы и папки

Сообщение alibek » 22.09.2008 (Пн) 15:35

Легко.
За чем дело стало?
Lasciate ogni speranza, voi ch'entrate.

AHDPE@ich
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 14.07.2008 (Пн) 10:25
Откуда: Ульяновск

Re: Файлы и папки

Сообщение AHDPE@ich » 22.09.2008 (Пн) 15:42

КАК это осуществить?
Не хочешь - давай как хочешь, а хочешь, так давай!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Файлы и папки

Сообщение alibek » 22.09.2008 (Пн) 16:45

Какие самостоятельные действия были для этого предприняты?
Lasciate ogni speranza, voi ch'entrate.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Файлы и папки

Сообщение SLIM » 22.09.2008 (Пн) 21:52

[ОФФТОП]Странно наблюдать уже такие вопросы. Мне кажется что по поиску можно найти миллион ссылок даже не с нашего формуа[/ОФФТОП]
А вообще вопрос то....лучше всего для простоты использовать старый родной FSO.
Пишите жизнь на чистовик.....переписать не удастся.....

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Файлы и папки

Сообщение Viper » 23.09.2008 (Вт) 6:59

AHDPE@ich, начни с Dir. А вообще вопрос настолько тривиален, что легко решается Поиском.
Весь мир матрица, а мы в нем потоки байтов!

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Файлы и папки

Сообщение SLIM » 23.09.2008 (Вт) 18:52

Viper писал(а):AHDPE@ich, начни с Dir

Прикалываешься. В данном случаем мало поможет. Проще всего FSO. Говорю же. И производительнее будет.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Файлы и папки

Сообщение Хакер » 23.09.2008 (Вт) 21:17

Dir поможет много, и будет более производително, чем FSO.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Файлы и папки

Сообщение Antonariy » 23.09.2008 (Вт) 21:21

Офф слегка.
Сравнительные тесты показали, что fso шустрее, чем dir, работает с сетевыми папками. И, да, медленне с локальными.
Лучший способ понять что-то самому — объяснить это другому.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Re: Файлы и папки

Сообщение Alexanbar » 24.09.2008 (Ср) 17:08

Dir нельзя вызывать рекурсивно

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Файлы и папки

Сообщение Antonariy » 24.09.2008 (Ср) 18:15

Можно, если сначала перебрать все содержимое папки и запомнить папки вложенные. Потом рекурсивно перебрать их.
Лучший способ понять что-то самому — объяснить это другому.

AHDPE@ich
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 14.07.2008 (Пн) 10:25
Откуда: Ульяновск

Re: Файлы и папки

Сообщение AHDPE@ich » 24.09.2008 (Ср) 19:58

alibek писал(а):Какие самостоятельные действия были для этого предприняты?


Нашел пример функции с Dir'ом, но она очень громоздкая и работает действительно долго.
А можно поподробнее про FSO, а именно про перебор файлов и папок?
Не хочешь - давай как хочешь, а хочешь, так давай!

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Файлы и папки

Сообщение SLIM » 24.09.2008 (Ср) 21:02

Alexanbar писал(а):Dir нельзя вызывать рекурсивно

Вот вот. Я то о том и говорю. Хоть вариант с запоминанием вложенных папок интересен, но мне кажеся тормозить будет страшно. Куда проще будет перебирать коллекции файлов и папок. Но это я так.....просто кажется
Пишите жизнь на чистовик.....переписать не удастся.....

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Файлы и папки

Сообщение BION » 24.09.2008 (Ср) 21:38

Вот пример из VB5, поиск файлов по маске всё чисто на контролах :), и ничего не надо мудрить.
Вложения
FILESEEK.RAR
(3.82 Кб) Скачиваний: 95
Буээ!

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Файлы и папки

Сообщение SLIM » 24.09.2008 (Ср) 22:17

BION писал(а):Вот пример из VB5, поиск файлов по маске всё чисто на контролах :), и ничего не надо мудрить.

[ОФФ]Не знаю как кого, но меня немного покарежило после фразы "ничего мудрить не надо"[/ОФФ]
А если по делу, то ты предлагаешь теперь если поадобится отобразить список папок постоянно "пихать" в приложение эти контролы? Которые использовались еще в 98 (а помоему и раньше).
Мне кажется здесь задачу нужно решить раз и навсегда. Так чтобы даже если через пяток лет нужно было подключить модуль с этой ф-ей и использовать где хочешь.....Зачем легкий путь то?
Пишите жизнь на чистовик.....переписать не удастся.....

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Файлы и папки

Сообщение BION » 24.09.2008 (Ср) 23:12

SLIM писал(а):
BION писал(а):Вот пример из VB5, поиск файлов по маске всё чисто на контролах :), и ничего не надо мудрить.

[ОФФ]Не знаю как кого, но меня немного покарежило после фразы "ничего мудрить не надо"[/ОФФ]
А если по делу, то ты предлагаешь теперь если поадобится отобразить список папок постоянно "пихать" в приложение эти контролы? Которые использовались еще в 98 (а помоему и раньше).
Мне кажется здесь задачу нужно решить раз и навсегда. Так чтобы даже если через пяток лет нужно было подключить модуль с этой ф-ей и использовать где хочешь.....Зачем легкий путь то?


:D Да этот пример и не притендует на фундаментальность, эт так, лишь бы ляпнуть... :)
Правильно все ты говоришь, надо — сделаем.
От себя — склоняюсь к ФСО:
Код: Выделить всё
Dim fso, drv, DriveLetter, lcount&

Sub Walk(objFolder)
    Dim fl, fld
    For Each fl In objFolder.Files
        lcount = lcount + 1
        Me.Caption = lcount
        'txtResult.Text = txtResult.Text + fl.Name + _
            'vbTab + DriveLetter + Mid(fl.Path, 3, Len(fl.Path) - Len(fl.Name) - 2) + vbCrLf
        'txtResult.SelStart = Len(txtResult.Text)
        DoEvents
    Next
    For Each fld In objFolder.SubFolders
      Walk fld
      DoEvents
    Next
End Sub

Private Sub cmdSearch_Click()
    DriveLetter = "d:"
    lcount = 0
    Set fso = CreateObject("Scripting.FilesystemObject")
    Set drv = fso.GetFolder(DriveLetter)
    Walk drv
    Set drv = Nothing
End Sub

8)
Буээ!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Файлы и папки

Сообщение Viper » 25.09.2008 (Чт) 6:51

AHDPE@ich писал(а):Нашел пример функции с Dir'ом, но она очень громоздкая и работает действительно долго.
Что за пример? В чем его громоздкость? Долго работает в среде или в готовом экзешнике?
BION, отвечать, ради того, что бы ответить не стоит. Оба твоих примера являются примерами того, как делать не надо! Особенно вариант на контролах.
Весь мир матрица, а мы в нем потоки байтов!

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Файлы и папки

Сообщение BION » 25.09.2008 (Чт) 7:57

Viper писал(а):
AHDPE@ich писал(а):Нашел пример функции с Dir'ом, но она очень громоздкая и работает действительно долго.
Что за пример? В чем его громоздкость? Долго работает в среде или в готовом экзешнике?
BION, отвечать, ради того, что бы ответить не стоит. Оба твоих примера являются примерами того, как делать не надо! Особенно вариант на контролах.


:!: Задело :mrgreen:
1. Про контролы достали... :evil: , это не я придумал а MS!
2. Пардон, твой критичниый «ответ» тоже мало чем полезен, будь продуктивнее (Професьён де фуа) — предложи свой вариант. И потом, чем тебя FSO не учстроил?
3. Меж тем, я поспешил найти третий вариант, на API. Это устроит предводителя дворянства?
Жду критики! :mrgreen:
Вложения
SearchByAPI.rar
(3.12 Кб) Скачиваний: 77
Буээ!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Файлы и папки

Сообщение Viper » 25.09.2008 (Чт) 10:16

BION писал(а)::!: Задело :mrgreen:
1. Про контролы достали... :evil: , это не я придумал а MS!
И что, MS вне критики? Не стоит все повторять за MS вслепую.
BION писал(а):2. Пардон, твой критичниый «ответ» тоже мало чем полезен, будь продуктивнее (Професьён де фуа) — предложи свой вариант. И потом, чем тебя FSO не учстроил?
Свой вариант я предложил в самом начал - использование Dir. Если бы автор поискал по форуму, он легко бы нашел вполне рабочие реализации. FSO не устраивает тем, что он является прстой оберткой над API.
BION писал(а):3. Меж тем, я поспешил найти третий вариант, на API. Это устроит предводителя дворянства?
Жду критики! :mrgreen:
Будем посмотреть. Первый глюк уже обнаружил - при попытке найти файлы с маской "*.*" в папке "C:\", прога надолго задумалась, а потом выдала ошибку переполнения.
Весь мир матрица, а мы в нем потоки байтов!

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Файлы и папки

Сообщение BION » 25.09.2008 (Чт) 10:27

Viper писал(а):Будем посмотреть. Первый глюк уже обнаружил - при попытке найти файлы с маской "*.*" в папке "C:\", прога надолго задумалась, а потом выдала ошибку переполнения.


FileCount As Integer => 32767 => overflow ;)
Буээ!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Файлы и папки

Сообщение Antonariy » 25.09.2008 (Чт) 10:44

BION писал(а):
Viper писал(а):Будем посмотреть. Первый глюк уже обнаружил - при попытке найти файлы с маской "*.*" в папке "C:\", прога надолго задумалась, а потом выдала ошибку переполнения.


FileCount As Integer => 32767 => overflow ;)
"Да разве ж это ошибка? Видала я ошибки, рядом с которыми эта — документированная возможность." © Черная Королева.
Лучший способ понять что-то самому — объяснить это другому.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Файлы и папки

Сообщение Viper » 25.09.2008 (Чт) 10:53

BION писал(а):
Viper писал(а):Будем посмотреть. Первый глюк уже обнаружил - при попытке найти файлы с маской "*.*" в папке "C:\", прога надолго задумалась, а потом выдала ошибку переполнения.


FileCount As Integer => 32767 => overflow ;)
Хочешь сказать, что это нормально? :) 32 тыщи файлов маловато для современного компа.
Весь мир матрица, а мы в нем потоки байтов!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Файлы и папки

Сообщение Viper » 25.09.2008 (Чт) 11:48

2 BION. После легкой обработки напильником получилось следующее.
SearchByAPI.rar
(2.11 Кб) Скачиваний: 78
Найдите два отличия.:) Можно конечно повозиться подольше, например, найденные файлы помещать вначале в массив, а уж потом в ListBox. Но на это времени юк.
Весь мир матрица, а мы в нем потоки байтов!

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Файлы и папки

Сообщение BION » 25.09.2008 (Чт) 11:52

Viper писал(а):
BION писал(а):
Viper писал(а):Будем посмотреть. Первый глюк уже обнаружил - при попытке найти файлы с маской "*.*" в папке "C:\", прога надолго задумалась, а потом выдала ошибку переполнения.


FileCount As Integer => 32767 => overflow ;)
Хочешь сказать, что это нормально? :) 32 тыщи файлов маловато для современного компа.


Вопервых, написано на автоматизме :) . Вовторых загадили комп то! Шучу...
Эт ж всё балванка, алмаз — нужно облагородить, подвергнуть огранке, и все засияет! :)

Viper писал(а):2 BION. После легкой обработки напильником получилось следующее.
SearchByAPI.rar
Найдите два отличия.:) Можно конечно повозиться подольше, например, найденные файлы помещать вначале в массив, а уж потом в ListBox. Но на это времени юк.


Ну вот и славно :)
Можно биляткчку или класец наваять.
Буээ!

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Файлы и папки

Сообщение BION » 25.09.2008 (Чт) 12:01

2 Viper.
Стоп, чёт он у тя не ищет по маске, допустем подефолту "*.mp4" — пустой лист, по маске "*.*" вроде находит. Чет перемудрил :|
Буээ!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Файлы и папки

Сообщение Viper » 25.09.2008 (Чт) 12:05

BION писал(а):Ну вот и славно :)
Можно биляткчку или класец наваять.
Дык! Вперед! :) Глядишь в кирпичи поместим! :) Главное, обрати внимание на разницу исходного кода и конечного.
Весь мир матрица, а мы в нем потоки байтов!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Файлы и папки

Сообщение Viper » 25.09.2008 (Чт) 12:12

BION писал(а):2 Viper.
Стоп, чёт он у тя не ищет по маске, допустем подефолту "*.mp4" — пустой лист, по маске "*.*" вроде находит. Чет перемудрил :|
У меня по любой маске все что надо находит.
Весь мир матрица, а мы в нем потоки байтов!

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Файлы и папки

Сообщение BION » 25.09.2008 (Чт) 12:24

Viper писал(а):
BION писал(а):2 Viper.
Стоп, чёт он у тя не ищет по маске, допустем подефолту "*.mp4" — пустой лист, по маске "*.*" вроде находит. Чет перемудрил :|
У меня по любой маске все что надо находит.


Странно, у меня нет. Либо находит, но не все.
Буээ!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Файлы и папки

Сообщение Viper » 25.09.2008 (Чт) 12:29

BION писал(а):
Viper писал(а):
BION писал(а):2 Viper.
Стоп, чёт он у тя не ищет по маске, допустем подефолту "*.mp4" — пустой лист, по маске "*.*" вроде находит. Чет перемудрил :|
У меня по любой маске все что надо находит.
Странно, у меня нет. Либо находит, но не все.
Действительно! Не находит во вложенных папках. Чуток перемудрил.
Весь мир матрица, а мы в нем потоки байтов!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Файлы и папки

Сообщение Viper » 25.09.2008 (Чт) 12:43

Пришлось чуток вернуться к исходному коду. Теперь ищет все и везде.
Вложения
SearchByAPI.rar
(2.06 Кб) Скачиваний: 159
Весь мир матрица, а мы в нем потоки байтов!

След.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 71

    TopList  
cron