Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Дерево папок в текстовик


Автор: rcdimon 12.2.2005, 20:41
Мне нужно сделать прогу, что бы сканировала комп и записывала в текстовик все дерево папок и файлов. Эта прога нужна для "фотографирования" системы. Что бы потом было проще понять куда устанавливаются проги. Мне это нужно для защиты от вирей.

c:\
windows
-system32
my
-gumno
--1.txt
--2.txt
--folder
---1.txt

и т.д.

Заранее спасибо

Автор: boevik 12.2.2005, 20:49
для такой оперции хватит и командной строки
Код

dir /s /on > dir.txt

а потом сравнишь два файла и увидишь все изменения

Автор: rcdimon 12.2.2005, 20:59
а как получить доступ из проги на vb к консоле? Shell ? и какой там синтаксис?

Автор: boevik 12.2.2005, 21:21
да напиши bat-ник, хватит с головой. На карaйний случай можешь батник из VB запускать, через Shell.

Автор: cardinal 12.2.2005, 23:51
Цитата(boevik @ 12.2.2005, 18:49)
для такой оперции хватит и командной строки
dir /s /on > dir.txt

Цитата(rcdimon @ 12.2.2005, 18:59)
и какой там синтаксис?

Синтаксис ты увидишь один раз сделав txt файл. Он не такой как ты хочешь и его программно будет довольно таки непросто изучать. Я сейчас получил файл в 998 страниц просканировав свой диск E: smile
rcdimon, если хочешь свой синтаксис, то смотри здесь
http://vingrad.ru/VB-VB-002018
и доделывай

Автор: rcdimon 13.2.2005, 15:55
Спасибо. Уже нашел делается это так, токлько правда без файлов. Одни папки, но доделать тут уже нечего делать.

Код

Private Sub ListDir(ByVal Path As String)
Dim sSubDirs() As String
Dim sFile As String
Dim u As Long

List1.AddItem Path

ReDim sSubDirs(0)

If Right$(Path, 1) <> "\" Then
   Path = Path & "\"
End If
sFile = Dir(Path & "*.*", vbDirectory)
Do While Len(sFile)
   If sFile <> "." And sFile <> ".." Then
       If GetAttr(Path & sFile) And vbDirectory Then
           u = u + 1
           ReDim Preserve sSubDirs(u)
           sSubDirs(u) = sFile
       End If
   End If
   sFile = Dir
Loop

QuickSort sSubDirs(), 1, u

Dim i As Long
For i = 1 To u
   ListDir Path & sSubDirs(i)
Next i
End Sub

Private Sub QuickSort( _
       avarIn() As String, _
       ByVal intLowBound As Integer, _
       ByVal intHighBound As Integer)
 ' Source    : Total VB SourceBook 6
 Dim intX As Integer
 Dim intY As Integer
 Dim varMidBound As String
 Dim varTmp As String
 
 If intHighBound > intLowBound Then
   varMidBound = avarIn((intLowBound + _
       intHighBound) \ 2)
   intX = intLowBound
   intY = intHighBound
   
   Do While intX <= intY
     If avarIn(intX) >= varMidBound And _
        avarIn(intY) <= varMidBound _
     Then
       varTmp = avarIn(intX)
       avarIn(intX) = avarIn(intY)
       avarIn(intY) = varTmp
       intX = intX + 1
       intY = intY - 1
     Else
       If avarIn(intX) < varMidBound Then
         intX = intX + 1
       End If
       If avarIn(intY) > varMidBound Then
         intY = intY - 1
       End If
     End If
   Loop
   
   QuickSort avarIn(), intLowBound, intY
   QuickSort avarIn(), intX, intHighBound
 End If
End Sub

Private Sub Command1_Click()
ListDir "C:\"
End Sub




Создаете кнопку и листбокс. И все. Вместоя листбокса я использую файл. А синтаксис я имел в виду другой.

Как на программе на VB получить доступ к командной строке ПК. Что бы можно было исполнять консольные команды, типа dir, cd, copy, rename и т.д.


Автор: Exception 15.2.2005, 17:04
Shell "Rename old.txt new.txt"
только сама строка не появится. А чтоб появилась либо VB .NET либо апи. Поищи в win32api.txt слово console - найдешь функции. А дальше .... MSDN smile

Автор: Akina 15.2.2005, 17:09
Цитата(rcdimon @ 12.2.2005, 21:41)
Эта прога нужна для "фотографирования" системы. Что бы потом было проще понять куда устанавливаются проги. Мне это нужно для защиты от вирей.

Вообще лучше не изобретать велосипед и использовать существующие тулзы для изготовления и сравнения снапшотов и/или протоколирования инсталляций.

Автор: rcdimon 16.2.2005, 12:25
Ну, конечно не только для фотографирования. И к тому же я этим занимаюсь не только потому, что мне нужна такая програ. Это очень интересно. Все можно взять готовое. Зачем писать свое? Например, для своего сайта я всегда все скрипты пишу с нуля сам. Сам же разрабатываю алгоритм. Не потому, что не могу поставить phpBB, а потому, что я хочу программировать, а не юзать чужие проги.

Автор: Akina 16.2.2005, 12:35
Цитата(rcdimon @ 13.2.2005, 16:55)
Как на программе на VB получить доступ к командной строке ПК. Что бы можно было исполнять консольные команды, типа dir, cd, copy, rename и т.д

Помещаем на форму текстбокс и кнопку. По нажатию кнопки введенное в текстбокс используем как аргумент функции Shell, возможно с предварительной обработкой.
Или открываем консольное окно и рулим им - только оно тебе надо?

Автор: Exception 16.2.2005, 16:13
Тема про консоль была:
http://forum.vingrad.ru/index.php?showtopic=37282

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)