Option Explicit
Dim fs, folder, subfolders, Files, i, j
Dim mStop As Boolean
Function digui(path)
If mStop = True Then Exit Function
Set folder = fs.getfolder(path)
Set subfolders = folder.subfolders
Set Files = folder.Files
For Each i In Files
If InStr(1, i.Name, Text1.Text, 1) Then
List1.AddItem i.path
End If
DoEvents
Next
For Each j In subfolders
digui (j.path)
Next
End Function
Private Sub Command1_Click()
If Command1.Caption = "搜寻" Then
Command1.Caption = "停止"
mStop = False
List1.Clear
Set fs = CreateObject("scripting.filesystemobject")
digui (Dir1.path)
If List1.ListCount = 1 Then
End If
Command1.Caption = "搜寻"
Else
Command1.Caption = "搜寻"
mStop = True
End If
End Sub
Private Sub Drive1_Change()
Dir1.path = Drive1.Drive
End Sub
Private Sub Form_Load()
End Sub
搜索程序已写好,就缺那个打开文件的程序,其实我要打一条码打印文件,文件类型为“ArgoBar Pro Document”,试了下面的都不成功
VB编程中,搜寻到文件在列表中例出,并用鼠标双击它打开文件或程序!
答案:5 悬赏:60 手机版
解决时间 2021-02-11 03:07
- 提问者网友:蔚蓝的太阳
- 2021-02-10 19:52
最佳答案
- 五星知识达人网友:冷風如刀
- 2021-02-10 21:02
在上述代码的基础上,复制下面代码,即可实现你需要的功能!
Private Sub List1_DblClick() '
Dim S As String
Const Sh As String = "rundll32 url.dll,FileProtocolHandler ""#"""
S = List1.Text
Shell Replace(Sh, "#", S) '双击它打开文件或程序(所有注册类型的文件)
End Sub
Private Sub List1_DblClick() '
Dim S As String
Const Sh As String = "rundll32 url.dll,FileProtocolHandler ""#"""
S = List1.Text
Shell Replace(Sh, "#", S) '双击它打开文件或程序(所有注册类型的文件)
End Sub
全部回答
- 1楼网友:慢性怪人
- 2021-02-11 00:05
将文件夹中的文件列出,这个有多种办法,你可以引用FileObjectSystem或用Drive+Dir+File来实现,这个都不困难。关键你要在列表框打开选中的文件,这个有些问题,首先你的文件格式都不统一,打开方式也不一样,你可以根据文件扩展名来设置打开文件方式,不过写起来没那么容易。
- 2楼网友:持酒劝斜阳
- 2021-02-10 23:20
什么问题?说清楚点。。
再看看别人怎么说的。
- 3楼网友:低血压的长颈鹿
- 2021-02-10 21:46
楼主,你不是写好了?递归遍历文件搜索吗?
不能实现搜索吗?
噢,搜索实现了,是想运行选择的文件吧?
我们知道,在windows系统中,能直接运行的只有三种文件,.exe .bat .com其他所有的文件都是通过调用这三种文件而运行的,所以有文件关联的概念.比如一个文本文件,1.txt吧,它的打开是由于windows设定好有notepad.exe文件运行调用1.txt所以我们才能使用,在VB中如果您想实现直接找到关联程序来运行文件那么请用一个api函数,既然您能写出递归,那么也有一定的编程水平了,api的声明等等就不用多解释了.下面的代码您试着在您的程序中用吧.
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
ShellExecute Me.hWnd, "open", fn, "", "", 1
'fn就是要打开的文件的绝对路径,比如c:\添加一个Dirve控件,Dri控件,和Film控件!在窗口中将会有三个控件、在Dri中编入:Dirve.path=Dri.dirve在Film中编入film.path=dri.divre!点F5运行。
- 4楼网友:西风乍起
- 2021-02-10 21:27
打开 文件 可用
Dim SOpen as Object
Set SOpen =Createobject("Wscript.Shell")
Sopen.run List1.List(List1.ListIndex)
会自己启动相应的应用程序来打开文件
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯