Подскажите пожалуйста наилучший способ как записать файл в некоторую папку folder1\folder2\...\folderN
, если в наличии только папка folder1\folder2\...\folderM
.
При этом запись выполняется с помощью std::ofstream
.
Понятно, что задачу можно решить в лоб - распарсить путь к файлу и проверить существует ли каждая папка в пути и если нет - создать ее.
Но может/наверное существует более простой путь для решения этой задачи?
Я бы делал так - воспользовался стандартной библиотекой <filesystem>
и создавал бы каталог с помощью create_directories()
не глядя, есть ли уже такой каталог или нет. Нет - создаст, есть - ну и хорошо :)
А потом бы создавал файл.
Все равно проверка существования 100% гарантии не дает - между проверкой и созданием файла кто-то другой может каталог и стереть :)
Update
#include <iostream>
#include <filesystem>
int main(int argc, const char * argv[])
{
std::error_code e;
std::cout << std::filesystem::create_directories("G:\\Tmp\\Test\\aaa\\bbb\\ccc",e) << std::endl;
std::cout << std::filesystem::create_directory("G:\\Tmp\\Test\\zzz",e) << std::endl;
}
VC++ 2017 15.9.7
Скомпилировало, работает.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Программа должна получать на вход координаты из командной строки по образцу (x;y) , вроде бы все норм , но выдает ошибкуБыл бы благодарен, если...
Есть приложение с пулом потоков
Разбираюсь с абстрактными классами в java и в качестве примера их использования приводиться фабричный метод, и говориться что в данном случае...