Множественный фильтр в окне выбора файлов в VBScript - PullRequest
0 голосов
/ 24 января 2020

У меня есть окно выбора файла. Все в порядке. Потому что я не могу показать все файлы, поэтому я использовал фильтр. Я хочу просматривать только файлы txt и xml, и фильтр в порядке. Но мне нужно просматривать оба типа файлов одновременно . Теперь, когда открывается окно, отображаются только текстовые файлы и для отображения xml файлов мне приходится каждый раз менять фильтр. Как я могу сделать фильтр с "ИЛИ"? Кто-нибудь может мне помочь? Мой код:

On Error Resume Next
'--- choose file ---------------
Function GetFileDlgEx(sIniDir,sFilter,sTitle) 
 Set oDlg = CreateObject("WScript.Shell").Exec("mshta.exe ""about:<object id=d classid=clsid:3050f4e1-98b5-11cf-bb82-00aa00bdce0b></object><script>moveTo(0,-9999);eval(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(0).Read("&Len(sIniDir)+Len(sFilter)+Len(sTitle)+41&"));function window.onload(){var p=/[^\0]*/;new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(p.exec(d.object.openfiledlg(iniDir,null,filter,title)));close();}</script><hta:application showintaskbar=no />""") 
 oDlg.StdIn.Write "var iniDir='" & sIniDir & "';var filter='" & sFilter & "';var title='" & sTitle & "';" 
 GetFileDlgEx = oDlg.StdOut.ReadAll 
 End Function

Set fso = CreateObject("Scripting.FileSystemObject")
CurrentDirectory = fso.GetAbsolutePathName(".")
sFilter = "Text files (*.txt)|*.txt|XML files(*.xml)|*.xml||" 
sTitle = "You can select your file" 
MyFile = GetFileDlgEx(Replace(sIniDir,"\","\\"),sFilter,sTitle) 

Set objFile = FSO.GetFile(MyFile)
sName = objFile.Name
sPath = objFile.Path
sPath = Left(sPath, Len(sPath)-Len(sName))

f.Close
fso.Close

If MyFile = "" Then
  msgbox "File not selected"
  WScript.Quit
End if
vchoose = sPath & sName 
msgbox vchoose
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...