I'd also use $findfile().shortfn, which would take into account filenames that contain double spaces. That's because $1- does not retain any consecutive spaces, so $file($1-) on such files will be $null.

Here's a faster $size() alternative, using COM objects:
Code:
alias size {
  if !$isdir($1) { return }
  var %a = fso $+ $ticks, %b = getfolder $+ %a
  .comopen %a Scripting.FileSystemObject
  if $comerr { return }
  if $com(%a,GetFolder,1,bstr,$1,dispatch* %b) && $com(%b) {
    .comclose %a $com(%b,Size,2)
    %a = $com(%b).result
    .comclose %b
    return $int(%a)
  }
  .comclose %a
}


/.timerQ 1 0 echo /.timerQ 1 0 $timer(Q).com