Создание уникального временного каталога из чистого C в Windows

Я хотел бы создать уникальный временный каталог в Windows из некоторого C код (не C ++ или C #). Я хочу сделать это, чтобы я мог поставить временную файлы в каталоге, а затем легко удалить их все, когда я закончу (путем рекурсивного удаления каталога.)

По сути, я ищу эквивалент linux Функция mkdtemp . Здесь есть ответ C # и ответы на this вопрос предлагаю использовать Boost. Но поскольку я использую C, эти решения не работают для меня.

Лучшее, что я смог придумать, - это использовать GetTempFileName , за которым следует CreateDirectory , но проблема в том, что если я спрошу GetTempFileName , чтобы создать уникальное имя файла, он также создаст файл (который я не хочу, так как я хочу вместо этого создать каталог).

Соответственно, есть GetTempPath , который возвращает местоположение временной папки пользователя из среды переменные - но поскольку я хочу создать свой собственный каталог, я могу безопасно удалить позже, мне все равно нужно создать каталог внутри любого путь, который он вернет.

Похоже, если я хочу создать уникальный каталог, мне придется создать временный файл, получить имя, удалить его, а затем создать каталог с таким же именем - звучит очень запутанно. Есть другие идеи?

11
задан Community 23 May 2017 в 12:10
поделиться