HELP!Чтение файлов с диска по очереди как касперский напр...

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

HELP!Чтение файлов с диска по очереди как касперский напр...

Сообщение Memfivosfey » 17.02.2005 (Чт) 15:44

Мне очень нужно заставить мою прогу читать все файлы с диска, по очереди (полный путь, скрытые, системные, пустые папки...), как это происходит в антивирусах, например касперского... :cry: :cry: :cry: :?: :?: :?:
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 17.02.2005 (Чт) 17:29

А это разве Касперский придумал? Это метод Стэка Рекурсивина.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 17.02.2005 (Чт) 17:42

Мне однака, савершенно всё-равно кто придумал, я и неговорил, что он придумал, я только сказал: как у него, подскажите как плииз....
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 17.02.2005 (Чт) 17:44

Все просто.

Есть FSO. В нем есть объект Folder. У него есть коллекция Folders и Files, в коллекции Folders есть также объекты типа Folder и так далее, пока не кончится уровень вложенности.

Так что, рекурсия и for each тебя спасут :)
I don't understand. Sorry.

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 17.02.2005 (Чт) 18:46

А с помощью каких функций можно читать фолдер! Что бы было быстро... Не буду же я пользоваться стандартным контролом Dir1 для этого?!
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

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

Сообщение Amed » 17.02.2005 (Чт) 21:16

Очевидно, FSO.ReadFolder и DNA.FindErrors...

А вот и примерчик их использования...

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 18.02.2005 (Пт) 10:00

посмотри в примере моего кода. Скачет по всем папкам диска (переменная path ), создает дерево, сохраняет сруктуру (скрытые и не скрытые) в ацевскую базу с применением рекурсии и через FSO. Изменишь под себя как тебе надо.

Код: Выделить всё
Private Sub файл_в_базу(имя_папки, путь_к_папке)
Set rs2 = db.OpenRecordset("файлы")
Set fsl2 = fso.getfolder(путь_к_папке)
For Each файл In fsl2.Files
    rs2.AddNew
    rs2.Fields("имя") = файл.Name
    rs2.Fields("папка") = имя_папки
    rs2.Update
Next
rs2.Close
End Sub


http://bbs.vbstreets.ru/viewtopic.php?t=13691

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 18.02.2005 (Пт) 10:59

Amed писал(а):Очевидно, FSO.ReadFolder и DNA.FindErrors...

А вот и примерчик их использования...
Спасибо дружище, выручил..., дело говоришь.... :D :idea:
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 18.02.2005 (Пт) 11:09

посмотри в примере моего кода. Скачет по всем папкам диска (переменная path ), создает дерево, сохраняет сруктуру (скрытые и не скрытые) в ацевскую базу с применением рекурсии и через FSO. Изменишь под себя как тебе надо.

Код:
Private Sub файл_в_базу(имя_папки, путь_к_папке)
Set rs2 = db.OpenRecordset("файлы")
Set fsl2 = fso.getfolder(путь_к_папке)
For Each файл In fsl2.Files
rs2.AddNew
rs2.Fields("имя") = файл.Name
rs2.Fields("папка") = имя_папки
rs2.Update
Next
rs2.Close
End Sub


Иду проводить испытания... :P
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

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

Сообщение Ruslan Demidow » 18.02.2005 (Пт) 13:13

Memfivosfey писал(а):
Amed писал(а):Очевидно, FSO.ReadFolder и DNA.FindErrors...

А вот и примерчик их использования...
Спасибо дружище, выручил..., дело говоришь.... :D :idea:


Подкаталоги получить можно через коллекцию
Folder.subfolders

Vb-скрипт, приведённый ниже, выводит в текстовый файл C:\Test.txt все каталоги и файлы в них, начиная с каталога указанного в Path, включая вложенные.

Код: Выделить всё
dim FSO, Fldr, SbFolders, Fils, Path, lPath
dim cFile, cFolder, txt

Path="C:\User"
set FSo=Createobject("Scripting.FileSystemObject")
set txt=fso.createtextfile("c:\test.txt")
call GetFilesName (Path)
txt.close
msgbox "Ok"
Wscript.Quit(0)


Sub GetFilesName(lPath)
set fldr=fso.getfolder(lPath)
set sbfolders=fldr.subfolders
set fils=fldr.files

for each cfile in fils
   txt.writeline(fso.getparentfoldername(cfile) & "" & cfile.name)
next

for each cfolder in sbfolders
   txt.writeline ("=================================")
   txt.writeline("Folder: " & fso.getparentfoldername(cfolder) & ""  & cfolder.name)
   getfilesname(cfolder)
next
end sub
Это Ж-ж-ж-ж неспроста (с) Винни-Пух


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 171

    TopList