views:

665

answers:

2

My code processes all the files in a folder on a Windows box. I want to offer the user (who happens to also be me) the option to select the folder to be processed, using the standard File Chooser dialog.

I am trying to use the GetOpenFileName function to make this happen. (I am actually calling it from Python via pywin32, but that shouldn't be relevant.)

I can get it to select a particular file, but I can't see any options to let the user select a folder instead.

Is there a flag combination I haven't understood, am I calling the wrong function entirely or is there another idiom for doing this?

+2  A: 

Unfortunately, I think you're calling the wrong function entirely. It's been a while since I've done Win32 gui stuff.. but I seem to recall that there was a different way of bringing up a "select directory" box. It wasn't a straight Win32 function, but was some shell API function that required a whole heap of code to do the simplest thing.

Update: A bit of google reveals the SHBrowseForFolder function.

Update two: And here is an example for Python.

Greg Hewgill
+2  A: 

As Greg mentions, the function you want is a shell function. The specific function you need is SHBrowseForFolder, which is pretty messy to call. There's also PyWin32 documentation for it which mentions the browse_for_folder.py sample.

Martin Kenny