es tu variable $archivos ¿de donde sacas el valor??
¿seguro que siempre es un array???
lo que sucede, es que al recorrer con
while() vas agregando al array $archivos, pero obvio... si no esta declarada, y menos hay archivos... pues no existe!!!
declara la variable como
array antes de iniciar el gestor, para evitar este horror....