Red de conocimiento informático - Problemas con los teléfonos móviles - VB comprueba si existen varios archivos

VB comprueba si existen varios archivos

La pregunta no es muy específica, no estoy seguro de qué categoría es.

1 Compruebe si estos archivos existen en un directorio específico.

2 Revisa todo el disco duro del ordenador para ver si existen estos archivos.

Si es la pregunta 1, hay una manera fácil. Utilice directamente el control filelistbox para llamarlo sin cambiar las propiedades

Escritura del programa

file1.path="c:\abc\"

El directorio se mostrarán todos los archivos en

Luego use un programa para determinar el orden, como

for i= 1 to File1.ListCount

If file1.list( i-1 )="1.jpg" significa que hemos encontrado uno

El siguiente i

Si es la pregunta 2, será aún más difícil

El código se cita del programa descargado del sitio web "Source Code Sky". El "Buscador de archivos" en el código fuente no puede pegar la imagen de la interfaz. Puede descargar el código fuente directamente.

dll" Alias ​​​​"SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Tipo privado BROWSEINFO 'Estructura del cuadro de diálogo de selección de directorio

hOwer As Long

pidlRoot mientras

pszDisplayName como cadena

lpszTitle como cadena

ulFlags mientras

lpfn mientras

lParam As Long

ilmage As Long

Tipo de fin

Private Const BIF_ RETURNONLYFSDIRS = & p>Lindex privado siempre

Pflag privado como booleano

'Utilice la siguiente declaración al mostrar el cuadro de diálogo de propiedades del archivo

Tipo privado SHELLEXECUTEINFO

cbSize tan largo

fMask tan largo

hwnd tan largo

lpVerb como cadena

lpFile AslpVerb como cadena

lpFile como cadena

lpParameters como cadena

lpDirectory como cadena

nShow As Long

hInstApp As Long

' Puede seleccionar campos

lpIDList mientras

lpClass como cadena

hkeyClass mientras

dwHotKey mientras

hIcon As Long

hProcess As Long

Tipo de fin

Const privada SEE_MASK_INVOKEIDLIST = &HC

Const privada SEE_MASK_NOCLOSEPROCESS = &H40

Const privado SEE_MASK_FLAG_NO_UI = &.H400

SEI privado como SHELLEXECUTEINFO

Función de declaración privada ShellExecuteEX Lib "Shell32.dll" Alias ​​​​"ShellExecuteEx " (SEI como SHELLEXECUTEINFO) Siempre

'La siguiente es la declaración del uso de la API para buscar archivos

Función de declaración privada FindFirstFile Lib "kernel32" Alias ​​​​"FindFirstFileA" ( ByVal lpFileName como cadena, lpFindFileData como WIN32_FIND_DATA) siempre y cuando

Función de declaración privada FindNextFile Lib "kernel32" Alias ​​​​"FindNextFileA " (ByVal hFindF

ile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

Función de declaración privada FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Función de declaración privada FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Const privada FILE_ATTRIBUTE_DIRECTORY = & H10

Const privada MAX_PATH = 260

Tipo privado FILETIME

dwLowDateTime Tan largo

dwHighDateTime Tan largo

Tipo final

Tipo privado Tipo WIN32_FIND_DATA

dwFileAttributes Tan largo

ftCreationTime Como FILETIME

ftLastAccessTime Como FILETIME

ftLastWriteTime Como FILETIME

nFileSizeHigh As Long

nFileSizeLow As Long

dwReserved0 Tan largo

dwReserved1 Tan largo

cFileName As String* MAX_PATH

cAlternate As String * 14

Tipo de fin

Subcomando privado1_Click()

Dim bi como BROWSEINFO

Dim rtn como cadena, pidl como cadena, ruta como cadena

Dim pos As Long

bi.hOwer = Me.hwnd

bi.lpszTitle = "Seleccione directorio" 'Cuadro de diálogo Seleccionar directorio

bi.lpszTitle = "Seleccione directorio" ' Seleccione el cuadro de diálogo Directorio

bi.lpszTitle = "Seleccione DirectoryulFlags = BIF_RETURNONLYFSDIRS

pidl = SHBrowseForFolder( bi)

ruta = Espacio(512)

SHGetPathFromIDList pidl, ruta

pos = InStr(ruta, Chr(0))

rtn = Left(ruta, pos - 1)

If rtn = " " Luego salga de Sub

Text1.False

Screen.MousePointer = vbHourglass

StatusBar1.Panels(1).Text = "Por favor, espere... ."MousePointer = 0

StatusBar1.Panels(2

).Text = "*** tener" & ListView1.ListItems.Count & "archivos"

StatusBar1.Panels(1).Text = "Listo"

End Sub

Sub FindFile privado (sPath como cadena, sFile como cadena)

Atenuar xf como WIN32_FIND_DATA

Atenuar ff como WIN32_FIND_DATA

Atenuar ff como WIN32_FIND_DATA

Dim findhandle As Long

Dim lFindFile AsDim ff As WIN32_FIND_DATA

Dim findhand As Long

Dim lFindFile As Long

Dim Dstr As String

Dim fso como nuevo FileSystemObject

Dim f como archivo

Dim cPath como cadena

En caso de error, reanudar siguiente

cPath = IIf(Len(sPath) > 3, sPath & "\", sPath)

lFindFile = FindFirstFile(cPath & sFile, ff)

StatusBar1.Panel( 2). Text = "Buscando " & sPath

Si lFindFile > 0 Entonces

Hacer

Establecer f = fso.GetFile(cPath &. ff.cFileName)

ListView1.ListItems.Add lindex, , f.Name