Как создать dir, если нужно, из имени несуществующего файла в Qt?

Я хочу, чтобы мое приложение записало файл в указанное место и, следовательно, при необходимости создало соответствующий каталог.
Операция создания каталога не является для меня проблемой, но мне нужен путь каталога.
Я мог бы извлечь, если из пути к файлу, но, возможно, есть быстрый / краткий / удобный способ сделать полную операцию?

Я повторяю, я не ищу основную функцию makedir, а ту, которая будет принимать имя файла возможно несуществующего файла или простую функцию qt для извлечения строки пути dir из строки пути файла, поэтому написать функцию для такой основной задачи.

3

Решение

Используйте следующий код:

const QString filePath = "C:/foo/bar/file.ini";
QDir().mkpath(QFileInfo(filePath).absolutePath());

Этот код автоматически создает путь к указанному (несуществующему) файлу.


QFileInfo::absolutePath() извлекает абсолютный путь к указанному файлу.

QDir::mkpath() создает ранее извлеченный путь.

4

Другие решения

Если у вас есть полный путь к файлу и вам нужно извлечь путь к папке, вы можете сделать это следующим образом:

QFile file(full_path_to_the_file);
QFileInfo info(file);
QString directoryPath = info.absolutePath();
//now you can check if the dir exists:
if(QDir(directoryPath).exists())
//do stuff

В зависимости от того, что именно так вам нужно, вы можете использовать QFileInfo::canonicalPath() вместо absolutePath

Кроме того, вы также можете использовать QFileInfo::absoluteDir:

QFile file(full_path_to_the_file);
QFileInfo info(file);
if(info.absoluteDir().exists())
//do stuff
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector