程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> VB查找硬盤文件(全硬搜索)

VB查找硬盤文件(全硬搜索)

編輯:.NET實例教程
Private Declare Function SearchTreeForFile Lib "imagehlp.dll" (ByVal lpRoothPath As String, ByVal lpInputName As String, ByVal lpOutputName As String) As Long
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (<$False$

/span>ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Public Function getDirList() As String() ''<span >得到硬盤列表,下標0開始

Dim tmp As String * 64
GetLogicalDriveStrings Len(tmp), tmp ''得到所有外存盤符列表

dirlist = Split(tmp, Chr(0))
Dim Count As Integer
Count = 0
Dim arr() As String
For i = 0 To UBound(dirlist)
  OLOR: #0000ff">Select Case GetDriveType(dirlist(i))
    Case 2 ''Removable
    Case 3 ''Drive Fixed
        ReDim Preserve arr(Count) As String
        arr(Count) = dirlist(i)
        Count = Count + 1
    Case 4 ''Remote
    Case 5 >''CD-ROM
    Case 6 ''RAM Disk
    Case Else ''Unrecognized
  End Select
Next
getDirList = arr
End Function

Public Function sysFileFind(ByVal WhichRootPath As String, ByVal WhichFileName As String) As String
Dim iNull As</span> Integer
Dim lResult As Long
Dim sBuffer As String

On Error GoTo L_FILEFINDERROR
sBuffer = String$(1024, 0)
''注釋:查找文件

lResult = SearchTreeForFile(WhichRootPath, WhichFileName, sBuffer)
''注釋:如果文件找到,將返回字符串後續的空格刪除
''注釋:否則返回一個空字符串
If lResult Then
    iNull = InStr(sBuffer, vbNullChar)
    If00"> Not iNull Then
        sBuffer = Left$(sBuffer, iNull - 1)
    End If
    sysFileFind = sBuffer
    Else
        sysFileFind = ""
End If
Exit Function
L_FILEFINDERROR:
  MsgBox "查找文件過程中遇到錯誤!", vbInformation, "查找文件錯誤", sysFileFind = Format(Err.Number) & " - " & Err.Description

End Function

Function allSearch(FileName As String) As String
  arr = getDirList() ''得到硬盤列表
  allSearch = ""
  For i = 0 To UBound(arr)
    allSearch = sysFileFind(arr(i), FileName)
    If Len(allSearch) > 0 Then
   &nbsp;  Exit For
    End If
  Next
End Function

Private Sub Command1_Click()
Print allSearch("PS7.reg") ''查找文件PS7.reg
End Sub 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved