主题:关于文件系统控件:为什么路径不正确可还是能执行程序呵?
Private Sub Form_Load()
Form1.Caption = "文件系统控件应用实例"
Label1.Caption = "驱动器列表框"
Label2.Caption = "目录列表框"
Label3.Caption = "文件列表框"
Label4.Caption = "文件列表框中显示的文件类型:"
Label5.Caption = "在文件列表框中选中的文件:"
Combo1.Text = Combo1.List(0)
End Sub
Private Sub Drive1_Change() ' 当在驱动器列表框选择新的驱动器时
Dir1.Path = Drive1.Drive ' 目录列表框的路径改变
End Sub
Private Sub Dir1_Change() ' 目录列表框的路径改变时
File1.Path = Dir1.Path ' 文件列表框的路径改变
End Sub
Private Sub Combo1_Click()
File1.Pattern = LTrim(Right(Combo1.Text, 5)) '文件类型为组合框的后5个字符,例如*.frm
End Sub
Private Sub File1_Click()
' List1.Clear
List1.AddItem File1.FileName
End Sub
Private Sub File1_DblClick()
Dim RetVal
Dim fname As String
If Right(File1.Path, 1) = "\" Then ' 选定的目录是根目录
fname = File1.Path + File1.FileName
Else ' 选定的目录是子目录
fname = File1.Path + "\" + File1.FileName
End If
RetVal = Shell(fname, 1) ' 调用Shell函数运行程序
End Sub
大家请看:如果在File1_DblClick事件中将整个if---else---endif结构换成代码:
fname = File1.Path + "\" + File1.FileName
即对用户选择的目录不作判断,万一用户选的是根目录(如f:\)下的文件a.exe,则fname=f:\\a.exe,路径当中多了一个"\",也就是说路径错误了,那么在下一句执行shell函数时应该找不到这个可执行文件a.exe才对,但是,怎么居然也能够执行呵?!
[em10]
Form1.Caption = "文件系统控件应用实例"
Label1.Caption = "驱动器列表框"
Label2.Caption = "目录列表框"
Label3.Caption = "文件列表框"
Label4.Caption = "文件列表框中显示的文件类型:"
Label5.Caption = "在文件列表框中选中的文件:"
Combo1.Text = Combo1.List(0)
End Sub
Private Sub Drive1_Change() ' 当在驱动器列表框选择新的驱动器时
Dir1.Path = Drive1.Drive ' 目录列表框的路径改变
End Sub
Private Sub Dir1_Change() ' 目录列表框的路径改变时
File1.Path = Dir1.Path ' 文件列表框的路径改变
End Sub
Private Sub Combo1_Click()
File1.Pattern = LTrim(Right(Combo1.Text, 5)) '文件类型为组合框的后5个字符,例如*.frm
End Sub
Private Sub File1_Click()
' List1.Clear
List1.AddItem File1.FileName
End Sub
Private Sub File1_DblClick()
Dim RetVal
Dim fname As String
If Right(File1.Path, 1) = "\" Then ' 选定的目录是根目录
fname = File1.Path + File1.FileName
Else ' 选定的目录是子目录
fname = File1.Path + "\" + File1.FileName
End If
RetVal = Shell(fname, 1) ' 调用Shell函数运行程序
End Sub
大家请看:如果在File1_DblClick事件中将整个if---else---endif结构换成代码:
fname = File1.Path + "\" + File1.FileName
即对用户选择的目录不作判断,万一用户选的是根目录(如f:\)下的文件a.exe,则fname=f:\\a.exe,路径当中多了一个"\",也就是说路径错误了,那么在下一句执行shell函数时应该找不到这个可执行文件a.exe才对,但是,怎么居然也能够执行呵?!
[em10]