NAME¶
chooseDirectory - pops up a dialog box for the user to select a directory.
SYNOPSIS¶
$widget->
chooseDirectory( ?
option value
...? );
DESCRIPTION¶
The method
chooseDirectory is implemented as a perl wrapper on the core
tk "command"
tk_chooseDirectory, and
$widget is passed as the argument to the hidden
-parent option.
The
chooseDirectory method pops up a dialog box for the user to select a
directory. The following
option-value pairs are possible as command
line arguments:
- -initialdir dirname
- Specifies that the directories in directory should
be displayed when the dialog pops up. If this parameter is not specified,
then the directories in the current working directory are displayed. If
the parameter specifies a relative path, the return value will convert the
relative path to an absolute path. This option may not always work on the
Macintosh. This is not a bug. Rather, the General Controls control
panel on the Mac allows the end user to override the application default
directory.
- -parent $widget
- Makes $widget the logical parent of the dialog. The dialog
is displayed on top of its parent window.
- -title titleString
- Specifies a string to display as the title of the dialog
box. If this option is not specified, then a default title will be
displayed.
- -mustexist boolean
- Specifies whether the user may specify non-existant
directories. If this parameter is true, then the user may only select
directories that already exist. The default value is false.
CAVEATS¶
Perl does not have a concept of encoded filesystems yet. This means that
operations on filenames like "opendir" and "open" still
use byte semantics. Tk however uses character semantics internally, which
means that you can get filenames with the UTF-8 flag set in functions like
"chooseDirectory", "getOpenFile" and similar. It's the
user's responsibility to determine the encoding of the underlying filesystem
and convert the result into bytes, e.g.
use Encode;
...
my $dir = $mw->chooseDirectory;
$dir = encode("windows-1252", $dir);
opendir DIR, $dir or die $!;
...
See also "When Unicode Does Not Happen" in perlunicode and
"Unicode in Filenames" in perltodo.
EXAMPLE¶
my $dir = $mw->chooseDirectory(-initialdir => '~',
-title => 'Choose a directory');
if (!defined $dir) {
warn 'No directory selected';
} else {
warn "Selected $dir";
}
SEE ALSO¶
Tk::getOpenFile, Tk::getOpenFile
KEYWORDS¶
directory selection dialog