Visual Basic - quien sabe como recorrer todo el disco duro

Life is soft - evento anual de software empresarial
 
Vista:

quien sabe como recorrer todo el disco duro

Publicado por ricardo (50 intervenciones) el 23/08/2004 19:55:06
quien sabe como recorrer todo el disco duro en busca de un archivo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Recorrer Disco Duro (Parte 1)

Publicado por Semper (74 intervenciones) el 23/08/2004 23:12:15
Aqui te va un ejemplo usando DIR, creando controles durante la ejecucion, ejecutando RECURSIVAMENTE un sub, etc. etc....
Abres VB, nuevo proyecto EXE, pegas el codigo con la forma en blanco (sin controles) y lo ejecutas...

' ..............

Dim bDetener As Boolean

Dim lblArchivo As Label
Dim lblStatus As Label
Dim WithEvents txtArchivo As TextBox
Dim WithEvents listResultado As ListBox
Dim WithEvents cmdIniciar As CommandButton
Dim WithEvents cmdDetener As CommandButton
Dim WithEvents cmdSalir As CommandButton

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recorror Disco Duro (Parte 2)

Publicado por Semper (74 intervenciones) el 23/08/2004 23:14:05
Private Sub Form_Load()

Set lblArchivo = Me.Controls.Add("VB.Label", "lblArchivo", Me)
Set txtArchivo = Me.Controls.Add("VB.TextBox", "txtArchivo", Me)
Set cmdIniciar = Me.Controls.Add("VB.CommandButton", "cmdIniciar", Me)
Set cmdDetener = Me.Controls.Add("VB.CommandButton", "cmdDetener", Me)
Set lblStatus = Me.Controls.Add("VB.Label", "lblStatus", Me)
Set listResultado = Me.Controls.Add("VB.ListBox", "listResultado", Me)
Set cmdSalir = Me.Controls.Add("VB.CommandButton", "cmdSalir", Me)

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recorrer Disco Duro (Parte 3)

Publicado por semper (74 intervenciones) el 23/08/2004 23:15:33
' Continua el Form_Load()

Form1.ScaleMode = vbTwips
Form1.Height = 7320
Form1.Width = 7170
Form1.Top = (Screen.Height - Form1.Height) / 2
Form1.Left = (Screen.Width - Form1.Width) / 2

lblArchivo.Top = 600
lblArchivo.Left = 240
lblArchivo.Width = 1455
lblArchivo.Height = 255
lblArchivo.Caption = "Archivo a buscar:"
lblArchivo.Visible = True

lblStatus.Top = 1560
lblStatus.Left = 240
lblStatus.Width = 6375
lblStatus.Height = 255
lblStatus.Caption = "Status De La Busqueda"
lblStatus.BorderStyle = vbFixedSingle
lblStatus.Visible = True

txtArchivo.Top = 600
txtArchivo.Left = 1800
txtArchivo.Width = 4815
txtArchivo.Height = 285
txtArchivo.Text = ""
txtArchivo.Visible = True

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recorrer Disco Duro (Parte 4)

Publicado por semper (74 intervenciones) el 23/08/2004 23:16:26
' Continua el Form_Load()

cmdIniciar.Top = 960
cmdIniciar.Left = 3480
cmdIniciar.Width = 1455
cmdIniciar.Height = 375
cmdIniciar.Caption = "Iniciar"
cmdIniciar.Default = True
cmdIniciar.Enabled = True
cmdIniciar.Visible = True

cmdDetener.Top = 960
cmdDetener.Left = 5160
cmdDetener.Width = 1455
cmdDetener.Height = 375
cmdDetener.Caption = "Detener"
cmdDetener.Enabled = False
cmdDetener.Visible = True

cmdSalir.Top = 6360
cmdSalir.Left = 5160
cmdSalir.Width = 1455
cmdSalir.Height = 375
cmdSalir.Caption = "Salir"
cmdSalir.Enabled = True
cmdSalir.Cancel = True
cmdSalir.Visible = True

listResultado.Top = 2160
listResultado.Left = 240
listResultado.Width = 6375
listResultado.Height = 4155
listResultado.Visible = True

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recorrer Disco Duro (Parte 5)

Publicado por semper (74 intervenciones) el 23/08/2004 23:17:17
Private Sub Form_Unload(Cancel As Integer)
Me.Controls.Remove lblArchivo
Me.Controls.Remove lblStatus
Me.Controls.Remove txtArchivo
Me.Controls.Remove listResultado
Me.Controls.Remove cmdIniciar
Me.Controls.Remove cmdDetener
Me.Controls.Remove cmdSalir
End Sub

Private Sub cmdSalir_Click()
Unload Me
End Sub

Private Sub cmdDetener_Click()
bDetener = True
End Sub

Private Sub cmdIniciar_Click()
Dim nDrive As Integer
bDetener = False
listResultado.Clear
Dim nmouse As MousePointerConstants

Screen.MousePointer = vbArrowHourglass

cmdIniciar.Enabled = False
cmdDetener.Enabled = True
cmdSalir.Enabled = False

' Mandamos buscar desde la unidad C:\ hasta la unidad Z:\
' Ejecutando en forma recursiva el sub BuscarFolders

For nDrive = Asc("C") To Asc("Z")
BuscarFolders Chr(nDrive) & ":\"
If bDetener Then
Exit For
End If
Next

cmdDetener.Enabled = False
cmdIniciar.Enabled = True
cmdSalir.Enabled = True
txtArchivo.SetFocus

If bDetener Then
lblStatus.Caption = "Busqueda Abortada !!!"
Else
lblStatus.Caption = "Busqueda Finalizada !!!"
End If
lblStatus.Refresh

Screen.MousePointer = vbArrow

End Sub

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recorrer Disco Duro (Parte 6)

Publicado por Semper (74 intervenciones) el 23/08/2004 23:19:09
Private Sub BuscarFolders(cPath As String)
Dim cDir As String
Dim arrayPaths() As String
Dim nLenPaths As Long

' Busco el archivo indicado en el path actual
lblStatus.Caption = cPath & txtArchivo
lblStatus.Refresh

cDir = Dir(cPath & txtArchivo, vbNormal)

' Si lo encuentro lo agrego al listbox (path y archivo)
If cDir <> "" Then
listResultado.AddItem cPath & txtArchivo
End If

' Ejecuto los eventos que hubiese pendientes
DoEvents

If bDetener Then
Exit Sub
End If


' Obtengo lista de directorios disponibles bajo el path indicado
nLenPaths = 0
cDir = Dir(cPath, vbDirectory) 'Primer directorio disponible
Do While cDir <> ""
If cDir <> "." And cDir <> ".." Then
nLenPaths = nLenPaths + 1
ReDim Preserve arrayPaths(nLenPaths)
arrayPaths(nLenPaths) = cPath & cDir & "\"
End If
cDir = Dir ' Siguiente Directorio Disponible
Loop

' Ver si se cargo algun directorio en el array
If nLenPaths <= 0 Then
Exit Sub
End If

' Continua en el siguiente post ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recorrer Disco Duro (Parte 7 y Ultima)

Publicado por Semper (74 intervenciones) el 23/08/2004 23:20:16
' Continua el sub BuscarFolder ...

' Por cada directorio encontrado ejecuto en forma recursiva
' esta misma funcion hasta que la misma salga por si sola
' al no encontrar mas folders dentro del folder que se le
' indica, o hasta que se encienda la bandera bDetener ...

For nLenPaths = 1 To UBound(arrayPaths)
BuscarFolders arrayPaths(nLenPaths)
DoEvents
If bDetener Then
Exit Sub
End If
Next
End Sub

Private Sub listResultado_Click()
listResultado.ToolTipText = listResultado.List(listResultado.ListIndex)
End Sub

' Finaliza El Codigo !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar