Вы пытаетесь удалить свой каталог в цикле foreach, который удалит файлы внутри этого каталога.
Я бы сначала попытался удалить все файлы, а затем удалить каталог, иначе он не будетбыть пустым и не может быть удален.
Кроме того, $ i-counter не будет сообщать вам, когда каталог пуст: представьте, что ваш первый файл будет удален, затем $ i = -1,Если теперь ваш второй файл не удален, ваш $ i = 0 ... что является условием для удаления каталога, даже если он не пустой, потому что, по крайней мере, ваш второй файл остается.