cpp: удалить папку, открытую другими

0

Если я действительно хочу удалить (пустую) папку, даже если кто-то ее открыл, как это можно сделать с C++? С небольшой помощью DOS можно было:

  1. запустите NET FILES в поле DOS, чтобы определить все открытые файлы,
  2. отфильтруйте идентификаторы указанной папки,
  3. запустите NET FILES id/CLOSE в поле DOS с каждым идентификатором
  4. Наконец, вызовите RemoveDirectory().

Как добиться того же чисто в C++? (И я не хочу задерживаться до перезагрузки)

  • 0
    Можете ли вы показать, какой код у вас есть, и какие у вас проблемы с ним?
  • 0
    Хм, после создания минимального примера кода и игры с ним, кажется, что достаточно простого RemoveDirectory() - он небрежно закрывает даже дескрипторы других сеансов в каталоге. Тогда ошибка, которую я наблюдаю, мой код должен быть чем-то другим - я могу скоро вернуться с лучшим вопросом, это чепуха ...
Теги:

1 ответ

1

Возможно, это работало в DOS, но в современной ОС это невозможно.

В Windows вы можете использовать MoveFileEx с флагом MOVEFILE_DELAY_UNTIL_REBOOT если папка используется.

MoveFileEx(folderName, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
  • 0
    Я специально сказал, что не хочу откладывать до перезагрузки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню