Hola,
El read del dir solo devuelve el nombre del fichero, sin informacion del path o ruta. Y como estas pasando ese valor a las funciones, el lo que hace es buscar ese nombre de fichero en el directorio donde se encuentra el script. Para solucionarlo simplemente llama a las funciones que necesitan la ruta asi:
Código PHP:
$size = filesize($dir.$file);
siempre y cuando $dir finalice en / . Asi las funciones sabran donde esta el fichero.
Saludos.