溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

perl readdir函數(shù)詳解 獲取目錄下文件

發(fā)布時(shí)間:2020-07-18 17:55:03 來源:網(wǎng)絡(luò) 閱讀:7814 作者:jackwxh 欄目:開發(fā)技術(shù)

perl readdir函數(shù)詳解

2013年12月30日  Perl基礎(chǔ)  共 763字 字號(hào) 小 中 大  暫無評(píng)論  閱讀 4,384 次

readdir函數(shù)從一個(gè)用 opendir 打開的目錄句柄讀取目錄記錄也就是文件名。用法如下:

  1. readdir DIRHANDLE

在標(biāo)量環(huán)境中,readdir函數(shù)返回下一個(gè)目錄記錄,否則,它返回undef。在列表環(huán)境中,它返回在該目錄中所有剩下的記錄,如果剩下沒有記錄了,那么這個(gè)返回可能是一個(gè)空列表。比如:

  1. opendir(THISDIR, ".") or die "serious dainbramage: $!";

  2. @allfiles = readdir THISDIR;

  3. closedir THISDIR;

  4. print "@allfiles\n";

上面的代碼在一行里打印出當(dāng)前目錄的所有文件。如果你想避免“.”和“..”記錄,使用下面其中的一條:

  1. @allfiles = grep { $_ ne '.' and $_ ne '..' } readdir THISDIR;

  2. @allfiles = grep { not /^[.][.]?\z/ } readdir THISDIR;

  3. @allfiles = grep { not /^\.{1,2}\z/ } readdir THISDIR;

  4. @allfiles = grep !/^\.\.?\z/, readdir, THISDIR;

為了避免所有 .* 文件:

  1. @allfiles = grep !/^\./, readdir THISDIR;

只拿出文本文件:

  1. @textfiles = grep -T, readdir THISDIR;

不過我們再看看最后一個(gè)例子,因?yàn)槿绻鹯eaddir的結(jié)果不在當(dāng)前目錄里,那么我們需要在它的結(jié)果上把目錄部分粘回去——象這樣:

  1. opendir(THATDIR, $path) or die "can't opendir $path: $!";

  2. @dotfile = grep { /^\./ && -f } map { "$path/$_" } readdir(THATDIR);

  3. closedir TH


向AI問一下細(xì)節(jié)

免責(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)容。

AI