在python下面有一个os.listdir()可以枚举一个目录下面所有的文件及文件夹.但是在tcl里面有什么办法,一直在寻找.发现有一个叫做glob的命令,而且支持通配符.通过递归,可以非常轻松的在某个目录下面的文件名.下面的例子,稍加修改就可用于正常工作当中.
proc FindFile { startDir namePat } {
set pwd [pwd]
if {[catch {cd $startDir} err]} {
puts stderr $err
return
}
foreach match [glob -nocomplain -- $namePat] {
puts stdout [file join $startDir $match]
}
foreach file [glob -nocomplain *] {
if [file isdirectory $file] {
FindFile [file join $startDir $file] $namePat
}
}
cd $pwd
}
FindFile /home/riverbird/java/ "*.java"
|
阅读(2689) | 评论(1) | 转发(0) |