chooseDirectory
Section: User Contributed Perl Documentation (3)
Updated: 2021-01-27
Page Index
NAME
Tk::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