Удаление директории средствами WinAPI

282
26 ноября 2016, 19:07

Пишу деинсталлятор... При запуске он копирует себя во временную папку, передавая в качестве аргумента командной строки директорию запуска своего первого экземпляра, и из Temp по этой директории удаляет все файлы и папки... кроме одной - директории запуска своего приложения-родителя, при этом самого родителя успешно затирает при помощи DeleteFile(). Корневую папку отказывается удалять с кодом 32 (приложение занято другим процессом).

Подскажите пожалуйста, как удалить эту последнюю директорию? Наверное надо как-то обеспечить независимость запускаемого экземпляра от приложения родителя, или как-то запускать дочернее приложение с задержкой, при этом, чтобы успел закрыться вызывающий процесс... Только я не знаю как эти догадки реализовать... ((

Answer 1

Думаю, что каталог нельзя удалить потому, что он является текущим каталогом в удаляющем процессе.

Попробуйте сменить текущий каталог при помощи SetCurrentDirectory.

READ ALSO
Как реализовано разыменовывание указателя в C/C++?

Как реализовано разыменовывание указателя в C/C++?

Почему код int* p = &(*(&n)) корректно работает? Я, представляя себя компилятором, воспроизвожу код так:

249
Как получить результат SQL запроса?

Как получить результат SQL запроса?

выполняю вот такой запрос

227
SIGSEGV при сборке приложения в режиме релиза?

SIGSEGV при сборке приложения в режиме релиза?

Проблема заключается в том что я не могу понять почему я получаю ошибку SIGSEGVЕсли я собираю в режиме Debug программа работает, все хорошо, все...

211
Что за значение [System process] возвращает Process32First

Что за значение [System process] возвращает Process32First

Что это обозначает и зачем оно вообще нужно? Может где то используется?

284