当前位置: 首页 > 文档资料 > Perl 入门教程 >

目录(Directories)

优质
小牛编辑
150浏览
2023-12-01

以下是用于播放目录的标准函数。

opendir DIRHANDLE, EXPR  # To open a directory
readdir DIRHANDLE        # To read a directory
rewinddir DIRHANDLE      # Positioning pointer to the begining
telldir DIRHANDLE        # Returns current position of the dir
seekdir DIRHANDLE, POS   # Pointing pointer to POS inside dir
closedir DIRHANDLE       # Closing a directory.

显示所有文件

列出特定目录中可用的所有文件的方法有很多种。 首先让我们使用简单的方法来获取并使用glob运算符列出所有文件 -

#!/usr/bin/perl
# Display all the files in /tmp directory.
$dir = "/tmp/*";
my @files = glob( $dir );
foreach (@files ) {
   print $_ . "\n";
}
# Display all the C source files in /tmp directory.
$dir = "/tmp/*.c";
@files = glob( $dir );
foreach (@files ) {
   print $_ . "\n";
}
# Display all the hidden files.
$dir = "/tmp/.*";
@files = glob( $dir );
foreach (@files ) {
   print $_ . "\n";
}
# Display all the files from /tmp and /home directories.
$dir = "/tmp/* /home/*";
@files = glob( $dir );
foreach (@files ) {
   print $_ . "\n";
}

这是另一个示例,它打开一个目录并列出该目录中可用的所有文件。

#!/usr/bin/perl
opendir (DIR, '.') or die "Couldn't open directory, $!";
while ($file = readdir DIR) {
   print "$file\n";
}
closedir DIR;

打印可能使用的C源文件列表的另一个示例是 -

#!/usr/bin/perl
opendir(DIR, '.') or die "Couldn't open directory, $!";
foreach (sort grep(/^.*\.c$/,readdir(DIR))) {
   print "$_\n";
}
closedir DIR;

创建新目录

您可以使用mkdir函数创建新目录。 您需要具有创建目录所需的权限。

#!/usr/bin/perl
$dir = "/tmp/perl";
# This creates perl directory in /tmp directory.
mkdir( $dir ) or die "Couldn't create $dir directory, $!";
print "Directory created successfully\n";

删除目录

您可以使用rmdir函数删除目录。 您需要具有删除目录所需的权限。 此外,在尝试删除目录之前,此目录应为空。

#!/usr/bin/perl
$dir = "/tmp/perl";
# This removes perl directory from /tmp directory.
rmdir( $dir ) or die "Couldn't remove $dir directory, $!";
print "Directory removed successfully\n";

更改目录

您可以使用chdir函数更改目录并转到新位置。 您需要具有更改目录所需的权限并进入新目录。

#!/usr/bin/perl
$dir = "/home";
# This changes perl directory  and moves you inside /home directory.
chdir( $dir ) or die "Couldn't go inside $dir directory, $!";
print "Your new location is $dir\n";