Red de conocimiento informático - Problemas con los teléfonos móviles - Programación VB como herramienta de búsqueda

Programación VB como herramienta de búsqueda

'** Nombre de la función: GetFiles

'** Función: Obtener el nombre de archivo de un tipo específico en un directorio

'** Descripción del parámetro:

'** strSourceFolder Directorio especificado, como: C:\

'** strReturn Matriz de nombres de archivos que se guardarán

'** strType archivo Tipo, como: mp3, disponible cuando es múltiple, separado

'** strCondition se usa para determinar si el archivo contiene esta cadena, opcional, como: Asan

'** blnSearchSubFolder Ya sea para buscar subdirectorios

'** Salida de función:

'** strReturn Un conjunto de nombres de archivos

'** Retorno de función:

'** La ejecución de la función verdadera fue exitosa

'** La ejecución de la función falsa falló

'** Ejemplo de función:

'** Dim strFolders( ) como cadena

'**

'** Llamar a GetFiles("C:\MyMusic\", strFolders, "mp3", "Asan")

'************************************************ **

Función pública GetFiles(ByVal strSourceFolder como cadena, _

ByRef strReturn() como cadena, _

Opcional ByVal strType como cadena = "*" , _

Opcional ByVal strCondition As String = "", _

Opcional ByVal blnSearchSubFolder As Boolean = False) As Boolean

Dim strFileName As String ' nombre de archivo

Dim lngFolders As Long 'Número de carpetas

Dim lngFiles As Long 'Número de archivos cargados actualmente

Dim strPostfix As String 'Nombre del sufijo

Dim intStrat As Integer 'La posición de "."

Dim strFolders() As String 'La carpeta en el bucle actual

Dim i As Long

'// Poner el estilo del mouse en estado de espera

Screen.MousePointer = vbHourglass

En caso de error Reanudar siguiente

'// Agregar \ al final del directorio p>

Si es correcto$(strSourceFolder, 1) lt;gt; "\" Entonces

strSourceFolder = strSourceFolder amp; >Finalizar si

'//Inicialización

strFileName = Dir(strSo

urceFolder, vbDirectory)

lngFolders = 1

'****************************** ** *******************

'// Recorre el directorio especificado

'********* ******* *************************************

Do While strFileName lt;gt ""

DoEvents

'// Determinar si es el directorio raíz, si es el directorio raíz, continuar con el bucle

Si strFileName lt; gt; "Y strFileName lt ;gt; ".." Entonces

'// Si es un directorio, regístrelo

If (GetAttr( strSourceFolder & strFileName) y vbDirectory) = vbDirectory Entonces

ReDim Preserve strFolders(1 To lngFolders)

strFolders(lngFolders) = strSourceFolder amp; lngFolders 1

Else

'// Encuentra la posición de ".", es decir, el sufijo

intStrat = InStrRev(strFileName, ".")

If intStrat gt; 0 Then

strPostfix = Mid$(strFileName, intStrat 1)

'// Si no se especifica el tipo, prepárese para agregar el nombre del archivo a la matriz

If strType = "*" Then GoTo AddFileStep1

'// Determine si es el tipo deseado

If InStr(UCase (strType), UCase(strPostfix)) gt; 0 Entonces

AddFileStep1:

'// Determinar si existe una condición

If strCondition lt; ; "" Entonces

Si InStr(strFileName, strCondition) gt 0 Entonces

Ir a AddFileStep2

Fin

Else

p>

AddFileStep2:

'******* **********************

' // Agrega el nombre del archivo actual a la matriz

'***** *************************

lngFiles = UBound(strReturn) 1

ReDim Preserve strReturn(lngFiles)

strReturn(lngFiles) = strSourceFolder amp strFileName

End If

Finalizar si

Finalizar si

Finalizar si

p>

End If

End If

'// Continuar con el siguiente elemento

strFileName = Dir

Loop

p>

'*************************************** ********** *

'// Determinar si buscar subdirectorios

Si blnSearchSubFolder Entonces

For i = 1 To lngFolders - 1

Llamar a GetFiles (strFolders(i), strReturn, strType, strCondition, blnSearchSubFolder)

Siguiente

Finalizar si

'/ / Se utiliza para "cometer" errores

If UBound(strReturn) gt; = 0 Then

GetFiles = True

End If

'// Determinar si se produce un error

p>

Seleccione Case Err.Number

'// Subíndice fuera de límites

Caso 9

Err.Clear

GetFiles = False

Case Else

Err.Clear

GetFiles = True

Finalizar selección

'// Restaurar estilo del mouse

Screen.MousePointer = vbDefault

Finalizar función

'// Cargar archivo de ejemplo

'// Agrega un Comando1 y una Lista1 al formulario.

Subcomando privado1_Click()

Atenuar strFile() como cadena

Atenuar i mientras

Atenuar lngCount mientras

'// Carga el directorio F:\Design\ para descargar todos los archivos con el sufijo gif, jpg, png y el nombre del archivo que contiene "música"

If GetFiles("F:\Design\ \ ", strFile, "gif, jpg, png", "música", True) Luego

lngCount = UBound(strFile)

List1.Clear

Para i = 0 a lngCount

List1.AddItem strFile(i)

Siguiente

Debug.Print lngCount 1

Finalizar si

p>

End Sub

Compruébalo tú mismo, ¡esto está escrito por un cultivador!