tkFileDialogs

B

brandon harris

I'm wanting to allow users to select hidden directories in windows and it seems that using the tkFileDialog.askdirectory() won't allow for that. It'susing the tkFileDialog.Directory class which calls an internal command 'tk_chooseDirectory' . However the file selector dialogs (askopenfilename, asksaveasfilename, etc) has the common windows dialog which supports showing hidden folders. It's using the tkFileDialog.Open class which is calling aninternal command of 'tk_getOpenFile'.

Can anyone shed light on why these two dialogs are so very different and possibly give me a solution to this hidden directory issue. I have found that you can't really use the Open class because it's going to require a file be selected, not a directory and the Directory class won't navigate to or have an initialdir that is hidden (on windows the %APPDAT% folder is hidden by default)

Windows Example Code.

import tkFileDialog
# Won't start in or allow navigation to APPDATA
test = tkFileDialog.askdirectory(initialdir='%APPDATA%')
# Will start in and navigate to APPDATA
test = tkFileDialog.askopenfile(initialdir='%APPDATA%')

Thanks in advance for any help given!


Brandon L. Harris
 
R

Rick Johnson

[...]
import tkFileDialog
# Won't start in or allow navigation to APPDATA
test = tkFileDialog.askdirectory(initialdir='%APPDATA%')
# Will start in and navigate to APPDATA
test = tkFileDialog.askopenfile(initialdir='%APPDATA%')

Don't you just love inconsistencies! I get weird results using your
"string". Why not use expanduser?

py> path = os.path.expanduser('~\\AppData')

Of course that will not solve your main problem though. Probably since
showing hidden files is a function of the OS setting, which explorer
follows blindly. I tried your code AFTER changing "show
hidden_files_and_folders=True" and both dialogs open into the correct
directory, as expected. You could modify the setting, then show the
dialog, then revert the setting back.

Ah. The joys of Win32 scripting... *chokes*
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,143
Latest member
DewittMill
Top