在线等
解决方案 »
- 高人指点,如何比较图像的某一部分是否相同
- SQL 语句? DataEnvironment1???
- 关于OLE控件的问题?
- 请问如何在UserControl里面的PictureBox里面粘贴或者画控件?
- 如何用vb(或者vc)做刻录光盘(wzfztw)
- 查询时间控制
- 一个简单的字符串处理问题,高分求教
- ***.SetIndex属性丢失问题
- 怎样计算两个日期之间相差的月数?????????
- 在listview中如何让指定的记录获得焦点(程序指定),就是说让系统认为当前选择了该记录。
- 怎样在进度条中显示(0%-100%)的字样?
- 怎样在Webbrowser控件中检测到框架结构页面中的一个框架开始刷新和刷新结束?
给你个思路:
先在窗体上放一个DirListBox,设成不可见(dir函数不能递归调用,所以使用dirlistbox得到目录具体内容)
然后用两个数组,一个记录目录,一个记录文件,按顺序扫描就是了
sub hk(specf,exname)
on error resume next
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.Getfolder(specf)
set fa=f.files
for each kkkk in fa
if fso.getextensionname(kkkk.name)=exname then
msgbox kkkk.path
end if
next
set nextfolders = f.subfolders
for each subfolder in nextfolders'递归调用
hk subfolder,exname
next
end sub
aimdir=inputbox("输入你所要查找的文件夹的路径")
aimex=inputbox("输入你所要查找的文件类型,如java,mp3...")
hk aimdir,aimex把以上代码保存成.vbs文件,运行即可:)
Private Sub Command1_Click()
CommonDialog1.FileName = ""
CommonDialog1.Filter = "All Files|*.*"
CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
CommonDialog1.Action = 1
Dim s As String
s = CommonDialog1.FileName
Dim arr
arr = Split(s, Chr(0)) '不同的系统分割符可能不同,我这是在2000下
Dim path As String
Dim file1 As String
Dim i As Long
i = InStrRev(arr(0), "\")
List1.Clear
If i > 0 Then
path = Left(arr(0), i - 1)
If UBound(arr) >= 1 Then
For i = 1 To UBound(arr)
List1.AddItem path + "\" + arr(i)
Next
Else
List1.AddItem s
End If
End If
End Sub
'一个窗体即可
'一个按钮一个textbox
Private Sub Command1_Click()
Dim myShell As Object
Set myShell = CreateObject("Shell.Application")
Dim s As String
Dim mfolder As Object
'调用系统的浏览文件夹对话框
Set mfolder = myShell.BrowseForFolder(Me.hWnd, "请选择文件夹", 1)
If Not mfolder Is Nothing Then
s = mfolder.Self.Path
Text1.Text = s
End If
Set mfolder = Nothing
Set myShell = Nothing
End Sub
当然上述过程用api实现也可,用api实现的代码网上有很多,我就不写了:)
所有符合你条件的文件名的路径都会以msgbox的形式弹出!