Perl - Thư mục
Sau đây là các hàm tiêu chuẩn được sử dụng để chơi với các thư mục.
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.
Hiển thị tất cả các tệp
Có nhiều cách khác nhau để liệt kê tất cả các tệp có sẵn trong một thư mục cụ thể. Trước tiên, hãy sử dụng cách đơn giản để lấy và liệt kê tất cả các tệp bằng cách sử dụngglob nhà điều hành -
#!/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";
}
Đây là một ví dụ khác, mở một thư mục và liệt kê tất cả các tệp có sẵn bên trong thư mục này.
#!/usr/bin/perl
opendir (DIR, '.') or die "Couldn't open directory, $!";
while ($file = readdir DIR) {
print "$file\n";
}
closedir DIR;
Một ví dụ khác để in danh sách các tệp nguồn C mà bạn có thể sử dụng là:
#!/usr/bin/perl
opendir(DIR, '.') or die "Couldn't open directory, $!";
foreach (sort grep(/^.*\.c$/,readdir(DIR))) {
print "$_\n";
}
closedir DIR;
Tạo thư mục mới
Bạn có thể dùng mkdirchức năng tạo một thư mục mới. Bạn sẽ cần có quyền cần thiết để tạo một thư mục.
#!/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";
Xóa một thư mục
Bạn có thể dùng rmdirchức năng xóa một thư mục. Bạn sẽ cần có quyền cần thiết để xóa một thư mục. Ngoài ra, thư mục này phải trống trước khi bạn cố gắng xóa nó.
#!/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";
Thay đổi thư mục
Bạn có thể dùng chdirchức năng thay đổi một thư mục và đi đến một vị trí mới. Bạn sẽ cần có quyền cần thiết để thay đổi thư mục và vào bên trong thư mục mới.
#!/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";