VB递归遍历目录文件2

   Option Explicit
Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = &HFFFFFFFF
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function GetExitcodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitcode As Long) As Long

Private Const STATUS_PENDING = &H103&
Private Const sVBPath = "C:\Program Files\Microsoft Visual Studio\VB98\vb6.exe /m "
Private Const sVBFormFolder = "D:\vbsource\HABS\Form"
Dim sSourcePath As String


Private Sub RunShell(cmdline As String)
Dim hProcess As Long
Dim ProcessId As Long
Dim exitCode As Long
ProcessId = Shell(cmdline, 1)
hProcess = OpenProcess(SYNCHRONIZE, False, ProcessId)

If hProcess <> 0 Then
WaitForSingleObject hProcess, INFINITE

Call CloseHandle(hProcess)
End If
'MsgBox cmdline & "Closed"
End Sub
'//遍历目录得到vbp 工程文件并编译
Function SearchVbp(sPath)

Dim fso, f, f1, fc, s, ff, ff1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(sPath)
Set fc = f.Files
For Each f1 In fc
'msgbox InStr(f1.Name, "ABS")
If (LCase(GetFileExtName(f1.Name)) = "vbp") And InStr(f1.Name, "ABS") = 1 Then
' If InStr(f1.Name, "ABS") = 1 Then
MsgBox f1.Path
MakeDll (f1.Path)
' End If
End If
Next
Set ff = f.subFolders
For Each ff1 In ff
SearchVbp (ff1.Path)
Next

End Function

'//得到扩展名
Function GetFileExtName(sFileName)
Dim ipos, ilen
ipos = InStr(sFileName, ".")
ilen = Len(sFileName)
GetFileExtName = Right(sFileName, ilen - ipos)
End Function


Private Sub Command1_Click()
SearchVbp (sVBFormFolder)
End Sub

'// 编译
Function MakeDll(sVBP)
RunShell sVBPath & sVBP
End Function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值