TCL 在 c:/ 上查找特定文件

TCL finding specific file on c:/

我想搜索在我的硬盘上搜索名为 hw.exe 的文件的代码。

我找到了以下代码:

set files [glob hw.exe]
    set sofar -1

    foreach f $files {
            set size [file size $f]
            if {$size > $sofar} {
                    set sofar $size
                    set name $f
                    }
            }

    puts "Biggest files is $name at $sofar bytes"

有人想改正这个问题吗?或者有功能吗?

Tcllib 中的 fileutil package 具有您正在寻找的功能,前提是您编写了正确的过滤器。然后可以在返回的列表中找到最大的文件,该列表应该远小于驱动器上所有文件的列表!

package require fileutil

proc filter {name} {
    return [string match hw.exe $name]
}
set hwlist [fileutil::find C:/ filter]

set sofar -1
set name ""
foreach f $hwlist {
    set size [file size $f]
    if {$size > $sofar} {
        set name $f
        set sofar $size
    }
}
puts "Found $name of size $sofar"