РАБОТА С ПАПКАМИ!!!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

РАБОТА С ПАПКАМИ!!!!

Сообщение step » 11.11.2004 (Чт) 9:28

ПЛИЗ ПОМОГИТЕ!!
КАК В ТЕКСТБОКСЕ РАЗМЕСТИТЬ НАЗВАНИЯ ПАПОК В ВЫБРАННОЙ ДИРЕКТОРИИ (НАПРИМЕР ДИСК С:\ )
ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО!!!

EvilCoder
Посланец джихада
Посланец джихада
Аватара пользователя
 
Сообщения: 706
Зарегистрирован: 25.01.2004 (Вс) 15:08

Сообщение EvilCoder » 11.11.2004 (Чт) 9:33

:arrow: :arrow: <DELETED> :twisted: 8)
Последний раз редактировалось EvilCoder 14.08.2008 (Чт) 1:48, всего редактировалось 1 раз.
<<------- EvilCoder ------->>

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 11.11.2004 (Чт) 10:06

Покажу на примере с FSO
Код: Выделить всё
Dim FSO As Object
Dim Fldr As Object
Dim SubFldrs As Object
Dim CurrentSubFldr as Object
Dim sPath As string

sPath="C:\"
Set FSO=CreateObject("Scripting.FSO")
Set Fldr=FSO.GetFolder(sPath)
Set SubFldrs=Fldr.SubFolders

For Each CurrentSubFldr in SubFldrs
       Text1.Text=Text1.Text & CurrentSubFldr.Name & vbcrlf
Next

Set FSO=Nothing
Set Fldr=Nothing
Set SubFldrs=Nothing
Set CurrentSubFldr=Nothing


Через Dir$
Могу ошибаться...

Код: Выделить всё
Dim sPath as String
Dim sFolder as String

sPath="c:\"

sFolder=Dir$(sPath,vbFolders)
if len(sFolder)=0 then
     MsgBox "Каталогов нет."
Else
    while Len(sFolder)<>0
      Text1.Text=Text1.Text & sFolder & vbcrlf
   wend
end if
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

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

Сообщение alibek » 11.11.2004 (Чт) 10:34

Не vbFolder, а vbDirectory. И в цикле надо разместить вызов Dir$(), а то у тебя он бесконечный :)
Lasciate ogni speranza, voi ch'entrate.

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

РАБОТА С ПАПКАМИ!!!!

Сообщение step » 11.11.2004 (Чт) 12:28

Код: Выделить всё
Dim sPath as String
Dim sFolder as String

sPath="c:\"

sFolder=Dir$(sPath,vbFolders)
if len(sFolder)=0 then
     MsgBox "Каталогов нет."
Else
    while Len(sFolder)<>0
      Text1.Text=Text1.Text & sFolder & vbcrlf
   wend
end if
[/quote]
Я ПРОБОВАЛ ЭТОТ КОД, ОН ПИШЕТ ТОЛЬКО ПЕРВУЮ ПАПКУ, ПОДСКАЖИТЕ ЧТО В НЁМ НАДО ИЗМЕНИТЬ, ЧТО-БЫ ВСЕ ПАПКИ ПИСАЛИСЬ!!!

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 11.11.2004 (Чт) 12:37

Тебе ведь ответили уже - надо в цикле разместить Dir$()

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 11.11.2004 (Чт) 12:59

XairOn писал(а):Тебе ведь ответили уже - надо в цикле разместить Dir$()
Ну а куда Dir$() пихать в цикле ???

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 11.11.2004 (Чт) 13:12

alibek писал(а):Не vbFolder, а vbDirectory. И в цикле надо разместить вызов Dir$(), а то у тебя он бесконечный :)

Пардон, обшибся (писал с работы). Я даже указал на то, что возможны ошибки. :)

Хотя я по возможности всегда стараюсь пользоваться первым вариантом - он допускает расширение возможностей функции.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 11.11.2004 (Чт) 13:18

step писал(а):
XairOn писал(а):Тебе ведь ответили уже - надо в цикле разместить Dir$()
Ну а куда Dir$() пихать в цикле ???


Код: Выделить всё
Option Explicit

Private Sub Form_Load()
Dim sPath As String
Dim sFolder As String

Text1.Text=vbNullString
sPath = "c:"

sFolder = Dir$(sPath, vbDirectory)
If Len(sFolder) = 0 Then
     MsgBox "Каталогов нет."
Else
    While Len(sFolder) <> 0
      Text1.Text = Text1.Text & sFolder & vbCrLf
      sFolder = Dir$()
   Wend
End If
End Sub


Вот исправленный.

2 alibek И ещё - в данном случае у меня в список попадают и файлы (обычные, которые не скрытые и не системные). Что я не так делаю?
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 11.11.2004 (Чт) 14:01

Код: Выделить всё
Option Explicit

Private Sub Form_Load()
Dim sPath As String
Dim sFolder As String

Text1.Text=vbNullString
sPath = "c:\"

sFolder = Dir$(sPath, vbDirectory)
If Len(sFolder) = 0 Then
     MsgBox "Каталогов нет."
Else
    While Len(sFolder) <> 0
      Text1.Text = Text1.Text & sFolder & vbCrLf
      sFolder = Dir$()
   Wend
End If
End Sub

ЭТО ТО ЧТО НАДО ОГРОМНОЕ СПАСИБО ВСЕМ НУ И КОНЕЧНО Ruslanu Demidowu
:wink:


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 2

    TopList