Может, всё-таки скопировать ровно тот код, который выполняется и выдаёт ошибку?
А то как-то странно спрашивать, что не так в коде, который в телефоне набит
ну у вас всё правильно реализовано, самый главный момент - это наличие parent_id
только непонятно, зачем это поле в таблице с файлами. ну или точнее его надо назвать folder_id