Daddy писал(а):С чего начать?
разобраться бы с FAT для начала.
Option Explicit
Public Function test()
Dim FolderPath As String
Dim FileName As String
FolderPath = "d:\1\"
FileName = Dir$(FolderPath & "*.ini")
Do While (Len(FileName))
Debug.Print FileName
FileName = Dir$()
Loop
End Function
moderator писал(а):Daddy писал(а):.
Причем тут FAT к поиску?
private fso as new scripting.filesystemobject
Private Sub EnumFolders(Path As String)
On Error GoTo errhdl
Dim fsl As Folder
Dim fsf1 As File
Dim ndx As Node
Dim ndx1 As Node
Set fsl = fso.GetFolder(Path & "\")
For Each fsl1 In fsl.SubFolders
Call EnumFolders(Path & "\" & fsl1.Name)
Next fsl1
For Each fsf1 In fsl.Files
list1.additem fsf1.name
Next fsf1
errhdl:
End Sub
private sub form_load()
enumfolders ("c:")
end sub
RayShade писал(а):Daddy, небольшой совет - сначала думай, потом говори.
БЕЗ РАЗНИЦЫ КАКАЯ ФАЛОВАЯ СИСТЕМА!
API одно для всех. Так что хоть HPFS там будет, код не изменится от этого.
Vellan писал(а):А какая разница. Орнганизация то всё равно иерархическая. Вот выйдет Longhorn, тогда и будем SELECT и т.д.
RayShade писал(а):Daddy, небольшой совет - сначала думай, потом говори.
БЕЗ РАЗНИЦЫ КАКАЯ ФАЛОВАЯ СИСТЕМА!
- Код: Выделить всё
private fso as new scripting.filesystemobject
Private Sub EnumFolders(Path As String)
....
end sub
RayShade писал(а):Daddy, небольшой совет - сначала думай, потом говори.
БЕЗ РАЗНИЦЫ КАКАЯ ФАЛОВАЯ СИСТЕМА!
API одно для всех. Так что хоть HPFS там будет, код не изменится от этого.
А перебор всех файлов на диске делается с помощью рекрусии.
То есть примерно так:
- Код: Выделить всё
private fso as new scripting.filesystemobject
Private Sub EnumFolders(Path As String)
On Error GoTo errhdl
Dim fsl As Folder
Dim fsf1 As File
Dim ndx As Node
Dim ndx1 As Node
Set fsl = fso.GetFolder(Path & "")
For Each fsl1 In fsl.SubFolders
Call EnumFolders(Path & "" & fsl1.Name)
Next fsl1
For Each fsf1 In fsl.Files
list1.additem fsf1.name
Next fsf1
errhdl:
End Sub
Примечание - на форме д.б. Listbox с именем List1.
в Form_Load можно написать так:
- Код: Выделить всё
private sub form_load()
enumfolders ("c:")
end sub
skiperski писал(а):Просто этот пример выдран из программы и RayShade не почистил его. Эти переменные нигде не используются. Просто убери эти строчки.
Daddy писал(а):а насчет подвисания?
Daddy писал(а):Когда код выполняеться все висниет.
Daddy писал(а):Она не пердвигаються след оставляют за собой
Daddy писал(а):Отчего так ресурсы жрет?
Private Sub Form_Load()
Dim a() As String
ScanForFiles "C:\", "*.tmp", a()
For i = 0 To UBound(a())
List1.AddItem a(i)
Next
End Sub
Сейчас этот форум просматривают: Google-бот и гости: 25