Что API-функция Win32 состоит в том, чтобы использовать для удаления папки?

Не обязательно лучше, но так как хорошо иметь варианты, вот как это сделать, используя заявления Jinja :

- debug:
    msg: "{% for address in network.addresses.private_man %}\
        {% if address.type == 'fixed' %}\
          {{ address.addr }}\
        {% endif %}\
      {% endfor %}"

Или, если вы предпочитаете ставить все на одном line:

- debug:
    msg: "{% for address in network.addresses.private_man if address.type == 'fixed' %}{{ address.addr }}{% endfor %}"

Возврат:

ok: [localhost] => {
    "msg": "172.16.1.100"
}

22
задан Slapout 4 November 2008 в 17:28
поделиться

3 ответа

Я думаю, что Вы хотите DeleteFile и RemoveDirectory

16
ответ дан itsmatt 29 November 2019 в 00:57
поделиться

Существует два способа приблизиться к этому. Каждый через эти , Файловые службы (использующие команды такой как DeleteFile и RemoveDirectory) и другой через Windows Shell (использование SHFileOperation). Последнему рекомендуют, если Вы хотите удалить непустые каталоги или если Вы хотите обратную связь стиля проводника (диалоговые окна прогресса с летающими файлами, например). Самый быстрый способ сделать это состоит в том, чтобы создать SHFILEOPSTRUCT, инициализировать его и вызов SHFileOperation, таким образом:

void silently_remove_directory(LPCTSTR dir) // Fully qualified name of the directory being deleted, without trailing backslash
{
    SHFILEOPSTRUCT file_op = {
        NULL,
        FO_DELETE,
        dir,
        "",
        FOF_NOCONFIRMATION |
        FOF_NOERRORUI |
        FOF_SILENT,
        false,
        0,
        "" };
    SHFileOperation(&file_op);
}

Это тихо удаляет весь каталог. Можно добавить обратную связь и подсказки путем варьирования, инициализация SHFILEOPSTRUCT - действительно читает на ней.

30
ответ дан hatcat 29 November 2019 в 00:57
поделиться

Я верю DeleteFile, не отправляет файл в Корзину. Кроме того, RemoveDirectory удаляет только пустых директоров , SHFileOperation дал бы Вам большую часть контроля тем, что и как удалить и покажет стандартные диалоговые окна Windows UI (например, "Подготовка удалить и т.д.) в случае необходимости.

9
ответ дан Ajay 29 November 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: