>I believe I have no other choice.
>Thanks a bunch guys..
You
do have choices:
(1) PUTFILE() is one - it takes a file name, which can contain a path. It will allow you to specify a new file rather than an existing file, so you'd have to wrap it in a loop that did a test of the return from PUTFILE(), but the following will work:
? PUTFILE('Pick the Windows EXE file you want','C:\WINDOWS\*.EXE','EXE|COM')
will allow you to pick a file with an .EXE or .COM extension, and will start in C:\WINDOWS for you. You can specify a non-existant file by typing in the name in the dialog box.
(2) LOCFILE() is another option, and it requires the file name you pick to exist, but I find the automatic path searching unacceptable, as well as the fact that if the originating file is found, it never displays a dialog.
(3) The Shell.Automation automation object has a BrowseForFolder method that can be used to make a very useful and portable file browser (I have a FAQ entry here on UT showing how to use it to implement an enhanced GETDIR() function) but it requires Shell version 4.71 or later.
(4) The Shell.Automation also has a FindFiles method, which fires the usual Windows FindFile dialog. Again, Shell version 4.71, and from my POV, not as useful as using the BrowseForFolder method with some flags enabled.