usa scandir() al posto di readdir().

La @ avanti alle funzioni fa si che quella funzioni non mostri nessun errore nel caso si presenti.
opendir(), nel caso ci fosse un errore, restituisce false (un valore booleano). E a te lo faceva.