Я пытаюсь написать код, который удалит папку, в которой есть файлы. Я попробовал несколько способов, и каждый раз получаю одну и ту же проблему. Я удаляю файлы в папке и папка вроде бы нормально. Но, похоже, какая-то ссылка на папку все еще существует.
Я перехожу к своему коду и добираюсь до функций удаления, и они, кажется, проходят нормально. Затем я захожу в Windows Explorer и пытаюсь получить доступ к папке, которую я только что удалил. Он все еще там, хотя код говорит, что он удалил его, но когда я нажимаю на него, он говорит «Доступ запрещен». Один из методов, которые я попробовал, действительно удалил папку из проводника Windows, но когда я пытаюсь создать папку с тем же именем и местоположением, я получаю сообщение об ошибке, и из GetLastError выдается E_ACCESSDENIED.
Так что я должен сделать, чтобы правильно удалить папку?
Один метод, который я использовал, использовал SHFileOperation. Другим было использовать FindFirstData и удалить все файлы, а затем использовать RemoveDirectory для удаления пустой папки. Оба привели меня к этой проблеме отказа в доступе.
РЕДАКТИРОВАТЬ: Вот моя операция SHFile. https://stackoverflow.com/questions/9291995/cant-get-shfileoperation-to-delete-a-directory-with-more-than-one-file