vbs选择文件夹效果代码

不用组件的话有两种办法: 

set objFile = CreateObject("SAFRCFileDlg.FileOpen") 

Set objShell = CreateObject("Shell.Application") 

本blog里都有示例。 

如果调用vb组件,可以是: 

flag = &h200 

whichone = OpenFile("Choose a File!", "C:\", "Everything|*.*|TextFiles|*.TXT|Word-Documents|*.DOC", 2, flag) 

MsgBox "Raw data returned: " & whichone 

' Split up multi selection result: 

' space is used as separator: 

whichone = Split(whichone, " ") 

' field index 0 contains path information: 

path = whichone(0) 

' list all the files: 

' how many files were selected? 

filecount = UBound(whichone) 

if filecount=0 then 

' just one file selected! 

MsgBox "You selected one file: " & whichone(0) 

' check status of Read Only checkbox 

' is bit 1 set or cleared? 

' works only if just one file was selected! 

MsgBox "Returned flag: " & flag 

if (flag and 1) then 

' (flag and 1)<>0, transforms to true 

' bit is set! 

MsgBox "ReadOnly selected!" 

else 

MsgBox "ReadOnly not selected!" 

end If 

' check whether selected file is of default type (txt)  

if (flag and 1024) then 

MsgBox "selected file is no txt file!" 

else 

MsgBox "selected file is of default type!" 

end if 

else 

' more than one file selected! 

MsgBox "You selected " & filecount & " files!" 

for x = 1 to UBound(whichone) 

list = list & path & whichone(x) & vbCr 

next 

MsgBox list 

end If 

function OpenFile(title, dir, filter, index, flags) 

set comdlg = CreateObject("MSComDlg.CommonDialog") 

comdlg.filter = filter 

comdlg.FilterIndex = index 

comdlg.Flags = flags 

comdlg.MaxFileSize = 260 

comdlg.CancelError = false 

comdlg.DialogTitle = title 

comdlg.InitDir = dir 

' set txt as default 

comdlg.DefaultExt = "txt" 

comdlg.ShowOpen 

OpenFile = comdlg.filename 

' important: return flag status so your main script can 

' check it: 

flags = comdlg.Flags 

end function 

组件相关文件下载 http://xiazai.jb51.net/jbtools/vb6controls.rar

相关推荐