Perl 简明教程
Perl - Directories
下面是用于处理目录的标准函数。
Following are the standard functions used to play with directories.
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.
Display all the Files
有各种方法可以列出特定目录中所有可用的文件。首先,我们使用简单的方法,即使用 glob 运算符获取并列出所有文件 −
There are various ways to list down all the files available in a particular directory. First let’s use the simple way to get and list down all the files using the glob operator −
#!/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";
}
这里有另一个示例,它打开了一个目录,并列出此目录中所有可用的文件。
Here is another example, which opens a directory and list out all the files available inside this directory.
#!/usr/bin/perl
opendir (DIR, '.') or die "Couldn't open directory, $!";
while ($file = readdir DIR) {
print "$file\n";
}
closedir DIR;
可以用来打印 C 源文件列表的另一个示例是 −
One more example to print the list of C source files you might use is −
#!/usr/bin/perl
opendir(DIR, '.') or die "Couldn't open directory, $!";
foreach (sort grep(/^.*\.c$/,readdir(DIR))) {
print "$_\n";
}
closedir DIR;
Create new Directory
您可以使用 mkdir 函数创建一个新目录。您需要具有创建目录的必需权限。
You can use mkdir function to create a new directory. You will need to have the required permission to create a directory.
#!/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";
Remove a directory
您可以使用 rmdir 函数删除一个目录。您需要具有删除目录的必需权限。此外,尝试删除它之前,此目录应该是空的。
You can use rmdir function to remove a directory. You will need to have the required permission to remove a directory. Additionally this directory should be empty before you try to remove it.
#!/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";
Change a Directory
您可以使用 chdir 函数更改一个目录并前往一个新位置。您需要具有更改目录和进入新目录的必需权限。
You can use chdir function to change a directory and go to a new location. You will need to have the required permission to change a directory and go inside the new directory.
#!/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";