VBScript or HP ALM APIs do not offer a class or method for getting a file path from a user.
Therefore we have to use a workaround, which consists in using a different application to display a file picker dialog to a user.
A very simple solution would be to provide a user with an InputBox, which is unsatisfactory for me. Also users have to type or copy a path correctly, which they are sometimes not capable of.
I choose to automate Microsoft Excel to display a file picker dialog to a user.
Source Code
This method uses the function GetOpenFileName of the Excel.Application object, which displays a file picker to a user.
' @Author - Alexander Bolte ' @ChangeDate - 2014-12-18 ' @Description - Prompts a file picker dialog to user ' and returns the file path to picked file. ' @Param myDir - a Srting providing a path to a start directory to choose files from. ' @Param myFilter - a filter String for filtering only files of specific file types. ' @Param title - a caption for the displayed file picker dialog. ' @Returns - an empty String, if user aborts file selection. ' Automates following applications: ' Microsoft Excel - using file picker dialog from Excel, ' since VBScript does not provide one. Function GetFilePath(myDir, myFilter, title) ' As String Dim xlApp ' As Excel.Application Dim ret ' As String Dim shell ' As WScript.Shell On Error Resume Next Set shell = createObject("WScript.Shell") Set xlApp = createObject("Excel.Application") xlApp.visible = True If myFilter = "" Then myFilter = "All Files (*.*), *.*" End If shell.AppActivate "Microsoft Excel" ret = xlApp.GetOpenFilename(myFilter, , title) If ret = False Then ret = "" End If If Err.Number <> 0 Then MsgBox Err.Description Err.Clear End If ' Close extra instance of Excel and set Application object to null ' to avoid "Raiders of lost reference". xlApp.Quit Set xlApp = Nothing Set shell = Nothing GetFilePath = ret On Error GoTo 0 End Function
The object called shell is of type WScript.Shell and is used to ensure that the application Excel is displayed in font of all other currently open application windows.
This way a user sees that the tool is requesting him to open an Excel file. Thus the bold lines are not essential for this code to work as expected but it will be a lot more user friendly.
Referenced API
Referenced APIs are as follows.
- WScript.Shell
- Excel.Application