Perl - 第十六章 | Perl 目錄操作
以下是用於播放目錄的標準功能。
1 2 3 4 5 6
| opendir DIRHANDLE, EXPR readdir DIRHANDLE rewinddir DIRHANDLE telldir DIRHANDLE seekdir DIRHANDLE, POS closedir DIRHANDLE
|
顯示所有的文件
顯示目錄下的所有文件,以下範例使用了glob操作符,演示如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
$dir = "/tmp/*"; my @files = glob( $dir );
foreach (@files ){ print $_ . "\n"; }
$dir = "/tmp/*.c"; @files = glob( $dir );
foreach (@files ){ print $_ . "\n"; }
$dir = "/tmp/.*"; @files = glob( $dir ); foreach (@files ){ print $_ . "\n"; }
$dir = "/tmp/* /home/*"; @files = glob( $dir );
foreach (@files ){ print $_ . "\n"; }
|
以下範例可以列出當前目錄下的所有文件:
1 2 3 4 5 6 7
|
opendir (DIR, '.') or die "無法打開目錄, $!"; while ($file = readdir DIR) { print "$file\n"; } closedir DIR;
|
如果你要顯示/tmp目錄下所有以.c結尾的文件,可以使用以下程式碼:
1 2 3 4 5 6 7
|
opendir(DIR, '.') or die "無法打開目錄, $!"; foreach (sort grep(/^.*\.c$/,readdir(DIR))){ print "$_\n"; } closedir DIR;
|
建立一個新目錄
我們可以使用mkdir函數來建立一個新目錄,執行前你需要有足夠的權限來建立目錄:
1 2 3 4 5 6 7
|
$dir = "/tmp/perl";
mkdir( $dir ) or die "無法建立 $dir 目錄, $!"; print "目錄建立成功\n";
|
刪除目錄
我們可以使用rmdir函數來刪除目錄,執行該操作需要有足夠權限。另外要刪除的目錄必須的空目錄:
1 2 3 4 5 6 7
|
$dir = "/tmp/perl";
rmdir( $dir ) or die "無法刪除 $dir 目錄, $!"; print "目錄刪除成功\n";
|
切換目錄
我們可以使用chdir函數來切換當期目錄,執行該操作需要有足夠權限。範例如下:
1 2 3 4 5 6 7
|
$dir = "/home";
chdir( $dir ) or die "無法切換目錄到 $dir , $!"; print "你現在所在的目錄為 $dir\n";
|
這將產生以下結果:
註:以上參考了
Tutorialspoint, Perl - Directories