В Win32 текущим рабочим каталогом вашего основного потока является местоположение, из которого был запущен исполняемый файл. Моя проблема заключается в том, что даже после вызова SetCurrentDirectory () куда-то еще процесс, очевидно, все еще имеет объект файловой системы, ссылающийся на этот начальный каталог запуска (проверяемый с помощью инструмента, такого как Process Explorer) - что означает, что этот директор не может быть удаленным процессом.
Кто-нибудь здесь знает о не слишком взломанном решении? Я специально сталкиваюсь с проблемой с программой, которая интегрируется с проводником (добавление глагола в ключ реестра HKCR \ Directory \ shell), мне нужно обработать файлы в каталоге, щелкнутом правой кнопкой мыши, и удалить исходный каталог, что невозможно поскольку начальный рабочий каталог установлен, как вы уже догадались, щелчок правой кнопкой мыши по каталогу.
РЕДАКТИРОВАТЬ : Я пойду на подход "использовать вспомогательный запуск из каталога вменяемого". Это может быть не очень элегантно, но это будет работать и не требует никаких неприятных хаков.