Posted to tcl by kevin_walzer at Wed Mar 30 14:28:34 GMT 2011view pretty
#run search for non-root directories, uses tclfilesearch package and regexes for search directory proc searchFiles {} { global searchterm searchdir status findtool newlist listlength searchrunning set searchrunning 1 clearFiles showProgress tsv::set application searchterm $searchterm tsv::set application searchdir $searchdir set searchthread [thread::create { proc dirSearchThreadCmd {} { package require tclfilesearch puts "running search" set mysearch [tclfilesearch::filesearch [tsv::get application searchterm] /] set searchdir [tsv::get application searchdir] if {[llength $mysearch] < 1} { set filelist {} } else { foreach item $mysearch { if {[regexp ^$searchdir $item] && ![file isdir $item] } { lappend filelist $item } } } tsv::set application filelist $filelist } thread::wait }] thread::send -async $searchthread dirSearchThreadCmd [tsv::set application filelist] # thread::send $searchthread $script [tsv::set application filelist] vwait [tsv::set application filelist] foreach item [ tsv::get application filelist] { set filename [file tail $item] set filedir [file dirname $item] set modtime [ clock format [file mtime $item] -format "%m-%d-%Y %H:%M:%S"] set filesize [formatSize [file size $item]] set newlist [list $filename $filedir $modtime $filesize] lappend newlist .bottom.listframe.listbox insert end $newlist .bottom.listframe.listbox cellconfigure end,0 -image [ tkmacicon::retrieveicon [file join a b $filedir $filename] 16 16 ] .bottom.listframe.listbox cellconfigure end,1 -image [ tkmacicon::retrieveicon $filedir 16 16 ] } thread::release $searchthread getListLength updateExtMenu endProgress searchNotify set searchrunning 0 }