Perl - ไดเรกทอรี
ต่อไปนี้เป็นฟังก์ชันมาตรฐานที่ใช้เล่นกับไดเรกทอรี
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";