PHP, 180 ไบต์
- อาร์กิวเมนต์แรก: เส้นทางต้องมีเครื่องหมายสแลช (หรือเครื่องหมายแบ็กสแลช)
- อาร์กิวเมนต์ที่สอง: ระดับเริ่มต้นที่NULLและจะถูกตีความว่าเป็น0โดยstr_repeat; จะส่งคำเตือนหากไม่ได้ระบุไว้
function d($p,$e){$s=opendir($p);echo$b=str_repeat("\t",$e++),$e?basename($p)."/":$p,"
";while($f=readdir($s))echo preg_match("#^\.#",$f)?"":is_dir($p.$f)?d("$p$f/",$e):"$b\t$f
";}
- แสดงไฟล์และไดเรกทอรีที่ซ่อนอยู่ แต่ไม่เรียกคืนไดเรกทอรีที่ซ่อนอยู่
 เพิ่มวงเล็บไปรอบ ๆis_dir(...)?d(...):"..."เพื่อลบรายการที่ซ่อนอยู่จากเอาท์พุท (+2)
 แทนที่"#^\.#"ด้วย#^\.+$#เพื่อแสดง / เรียกคืนรายการที่ซ่อนอยู่ แต่ข้ามรายการ dot (+2)
- อาจทำให้เกิดข้อผิดพลาดเมื่อไดเรกทอรีซ้อนกันลึกเกินไป แทรกclosedir($s);ก่อนที่}จะแก้ไขขั้นสุดท้าย(+13)
- จะล้มเหลวหากไดเรกทอรีมีรายการที่ไม่มีชื่อให้ผนวกfalse!==กับเงื่อนไข while เพื่อแก้ไข (+8)
กับ glob, 182 ไบต์ (อาจเป็น 163 ใน php ในอนาคต)
function g($p,$e){echo$b=str_repeat("\t",$e),$e++?basename($p)."/":$p,"
";foreach(glob(preg_replace("#[*?[]#","[$1]",$p)."*",2)as$f)echo is_dir($f)?g($f,$e):"$b\t".basename($f)."
";}
- ไม่แสดงหรือเรียกคืนไฟล์ / ไดเรกทอรีที่ซ่อนอยู่
- 2ย่อมาจาก- GLOB_MARKจะผนวกเครื่องหมายทับเพื่อชื่อไดเรกทอรีทั้งหมดเช่นเดียวกับ- ls -F
- preg_replaceหนี glob อักขระพิเศษ
 ฉันจะได้ทำร้าย- preg_quoteสำหรับเรื่องนี้ (-19); แต่นั่นจะล้มเหลวในระบบ Windows เนื่องจากแบ็กสแลชเป็นตัวคั่นไดเรกทอรีที่นั่น
- php เร็ว ๆ นี้อาจรวมถึงฟังก์ชั่นglob_quoteซึ่งจะช่วยให้การเล่นกอล์ฟเดียวกับpreg_quoteและทำงานได้กับทุกระบบ
ด้วยตัววนซ้ำ, 183 ไบต์
 
(ดี, ไม่ใช่ตัววนซ้ำอย่างหมดจด: ฉันใช้SplFileInfo::__toString()การเล่นกอล์ฟ$f->getBaseName()และ$f->isDir()ฟังก์ชั่น PHP 4 แบบเก่า)
function i($p){echo"$p
";foreach($i=new RecursiveIteratorIterator(new RecursiveDirectoryIterator($p),1)as$f)echo str_repeat("\t",1+$i->getDepth()),basename($f),is_dir($f)?"/":"","
";}
- ไม่ต้องต่อท้ายสแลช
- แสดงและเรียกซ้ำรายการที่ซ่อนอยู่ ( ls -a)
- แทรก,4096หรือ,FilesystemIterator::SKIP_DOTSก่อนที่),1จะข้ามรายการจุด (+5) (ls -A)
- ธง1ย่อมาจากRecursiveIteratorIterator::SELF_FIRST