Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
seldirdlg()
FUNCTION SelDirDlg
LPARAMETERS cDialogTitle, cStartingFolder, nBrowseFlags
* Select a directory using the default browser dialog
* Give a default title if none specified
IF TYPE('cDialogTitle') # 'C'
cDialogTitle = 'Please select a folder:'
ENDIF
* Default the start folder to an empty string; if
* you specify a starting folder, the browse is
* anchored there, although you can override it with
* the dialog's EditBox
IF TYPE('cStartingFolder') # 'C'
cStartingFolder = ''
ENDIF
IF TYPE('nBrowseFlags') # 'N'
* uses BROWSEINFO structure ulFlags values
* by default, set BIF_RETURNONLYFSDIRS (1) and BIF_EDITBOX (16) and BIF_VALIDATE
* to limit to returning directories, provide an edit box to let user enter a path,
* and validate manually-entered paths
*
* ulFlags values:
* BIF_RETURNONLYFSDIRS 1
* BIF_DONTGOBELOWDOMAIN 2
* BIF_STATUSTEXT 4
* BIF_RETURNFSANCESTORS 8
* BIF_EDITBOX 0x10
* BIF_VALIDATE 0x20
* BIF_BROWSEFORCOMPUTER 0x1000
* BIF_BROWSEFORPRINTER 0x2000
* BIF_BROWSEFOREVERYTHING 0x4000
nBrowseFlags = 32 + 16 + 1
ENDIF
LOCAL oBrowseObject, cPathToReturn, oShellObj
oShellObj = CREATEOBJ('Shell.Application')
cPathToReturn = ''
* Get a Folder object
oBrowseObject = oShellObj.BrowseForFolder(0, ;
cDialogTitle, ;
nBrowseFlags, ;
cStartingFolder)
* Before I used the Items collection of the Folder object
* to get a path; it doesn't work if the directory is empty.
* Instead, spin through the Items collection of the Parent
* Folder and locate the item whose name matches the
* Title property of the Folder object; return that path
IF TYPE('oBrowseObject') = 'O' AND ! ISNULL(oBrowseObject)
FOR EACH item IN oBrowseObject.ParentFolder.Items
IF item.name == oBrowseObject.title
cPathToReturn = Item.Path
EXIT
ENDIF
ENDFOR
ENDIF
RETURN cPathToReturn