您好,登錄后才能下訂單哦!
2013年12月30日 Perl基礎(chǔ) 共 763字 字號(hào) 小 中 大 暫無評(píng)論 閱讀 4,384 次
readdir函數(shù)從一個(gè)用 opendir 打開的目錄句柄讀取目錄記錄也就是文件名。用法如下:
readdir DIRHANDLE
在標(biāo)量環(huán)境中,readdir函數(shù)返回下一個(gè)目錄記錄,否則,它返回undef。在列表環(huán)境中,它返回在該目錄中所有剩下的記錄,如果剩下沒有記錄了,那么這個(gè)返回可能是一個(gè)空列表。比如:
opendir(THISDIR, ".") or die "serious dainbramage: $!";
@allfiles = readdir THISDIR;
closedir THISDIR;
print "@allfiles\n";
上面的代碼在一行里打印出當(dāng)前目錄的所有文件。如果你想避免“.”和“..”記錄,使用下面其中的一條:
@allfiles = grep { $_ ne '.' and $_ ne '..' } readdir THISDIR;
@allfiles = grep { not /^[.][.]?\z/ } readdir THISDIR;
@allfiles = grep { not /^\.{1,2}\z/ } readdir THISDIR;
@allfiles = grep !/^\.\.?\z/, readdir, THISDIR;
為了避免所有 .* 文件:
@allfiles = grep !/^\./, readdir THISDIR;
只拿出文本文件:
@textfiles = grep -T, readdir THISDIR;
不過我們再看看最后一個(gè)例子,因?yàn)槿绻鹯eaddir的結(jié)果不在當(dāng)前目錄里,那么我們需要在它的結(jié)果上把目錄部分粘回去——象這樣:
opendir(THATDIR, $path) or die "can't opendir $path: $!";
@dotfile = grep { /^\./ && -f } map { "$path/$_" } readdir(THATDIR);
closedir TH
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。