使用VB6
码.
CommonDialog1.DialogTitle = "Open File"
CommonDialog1.Filter = "*.*"
CommonDialog1.FilterIndex = 1
CommonDialog1.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
CommonDialog1.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly
CommonDialog1.CancelError = True
On Error Resume Next
CommonDialog1.ShowOpen
If Err Then
'MsgBox "Select Folder"
Exit Sub
End If
Run Code Online (Sandbox Code Playgroud)
从上面的代码,我选择一个文件,但我不想选择一个文件,我只想选择该文件夹.如何修改我的代码.
需要vb6代码帮助?
已经有一段时间了,因为我必须做任何视觉基础工作,但我认为不是使用通用对话框来获取要打开的文件的名称,您应该使用已经是Windows API一部分的SHBrowseForFolder函数.这是指向描述其用法的页面的链接.
更新(2017年):提供的链接已损坏,但可以在archive.org上查看备份版本
要选择文件夹,可以使用Shell和Automation组件.
Private shlShell As Shell32.Shell
Private shlFolder As Shell32.Folder
Private Const BIF_RETURNONLYFSDIRS = &H1
Private Sub Command1_Click()
If shlShell Is Nothing Then
Set shlShell = New Shell32.Shell
End If
Set shlFolder = shlShell.BrowseForFolder(Me.hWnd, "Select a Directory", BIF_RETURNONLYFSDIRS)
If Not shlFolder Is Nothing Then
MsgBox shlFolder.Title
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
您需要添加shell32.dll对项目的引用.使用项目/参考...菜单,然后浏览shell32.dll.
或者您可以像Twotymz建议的那样使用Windows API.