Perl入門(五)Perl文件讀寫



Perl文件夾操作

Perl創建、刪除、修改文件夾

mkdir("文件夾名稱",權限);

rmdir("文件夾名稱");

rename("舊文件夾名稱","新文件夾名稱");

權限:4代表可讀,2代表可寫,1代表可執行;權限的組成:[前綴0][文件所有者][同組用戶][其他用戶]。

生成的數字序列由擁有的權限對應的數字加和計算得到。

如‘0755’代表:文件所有者可讀可寫可執行,同組用戶可讀可執行,其他用戶可讀可執行。

注意

  1. 一次只能創建/刪除一個文件夾;
  2. 刪除的文件夾必須爲空文件夾;
  3. 爲了更安全的操作文件夾,一般在各種操作後添加“|| die "失敗描述信息$!"”,意思爲:“如果失敗了,輸出信息,然後終結進程”。另外$!是系統錯誤提示信息。
#!user/bin/env perl -w

#預定義兩個文件夾路徑
@dirs=("newFolder","newFolder/insideFolder1","newFolder/insideFolder2");

#創建文件夾
#Perl mkdir 只能創建最後端的文件夾,它認爲中間的文件夾都是已經存在了的
#如果你先執行下面這句,則會告訴你找不到這樣的文件夾
#mkdir ($dirs[1],0755) || die "folder $dirs[1] can not be created! cause by:$!" ;
foreach $dir (@dirs)
{
	mkdir ($dir,0777) || die "folder $dir can not be created! cause by:$!";
}

#rename方法可以更改文件夾名稱
rename("newFolder/insideFolder1","newFolder/insideFolder3")||die "rename folder failed! cause by:$!";

#刪除文件夾,被刪除的文件夾必須爲空
rmdir($dirs[2]) || die "remove folder failed!cause by:$!";

Perl獲取文件夾列表

1.獲取文件夾操作句柄

opendir(句柄名稱,文件夾路徑);

2.讀取文件列表

readdir(句柄名稱);

3.關閉文件句柄

closedir(句柄名稱);

其他方法:

1.glob獲取文件夾下列表

glob(文件夾路徑/*);

2.glob方法的簡寫

<文件夾路徑/*>;

XXXXdir和glob方法對比:

1.glob方法返回文件數量有限,如果文件夾下文件過多,則只會提示“過多的內容”;

2.glob方法返回的文件列表帶路徑;

3.glob方法由於是調用本地機器的方法協助工作,故效率低。

#!user/bin/env perl -w

#獲取文件夾列表
opendir (FOLDER,"newFolder") || die "can not open folder!cause by:$!";
my @folders1 = readdir(FOLDER);
#如只需要某一些滿足條件的內容,可以使用下面寫法
#my @folders = grep(!/\.+/,readdir(FOLDER));
foreach $file (@folders1)
{
	print "$file\n";
}
closedir(FOLDER);
print "-" x 50;
print "\n";
my @folders2 = glob("newFolder/*");
#簡化爲:my @folders = <"newFolder/*">;
foreach $file (@folders2)
{
	print "$file\n";
}


輸出結果:

.
..
insideFolder1
insideFolder2
--------------------------------------------------
newFolder/insideFolder1
newFolder/insideFolder2


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章