QDir mkdir с absolutepath - PullRequest
       4

QDir mkdir с absolutepath

11 голосов
/ 10 марта 2012

У меня проблема с созданием каталога с помощью Qt.Я хотел бы создать dir в Documents'dir, поэтому я делаю что-то вроде этого:

QString path("C:/Users/Me/Documents/MyApp/profiles/");
Qdir dir = QDir::root();
dir.mkdir(path);

Но это не работает!У меня есть тест с "/" и "\" для разделителей, но в двух случаях это не работает.

Как мне создать мой каталог?

Спасибо.

Ответы [ 4 ]

31 голосов
/ 01 июля 2013

Вы можете сделать это:

QDir dir(path);
if (!dir.exists()){
  dir.mkdir(".");
}
13 голосов
/ 10 марта 2012

Попробуйте использовать QDir::mkpath как dir.mkpath(path);

4 голосов
/ 10 марта 2012

QDir dir = QDir::root() создает экземпляр QDir, настроенный для указания на root, и копирует этот параметр в dir. Чтобы избежать дополнительной копии и кода, вы можете использовать QDir dir(QDir::root);. В Windows он будет указывать на корень системного диска, обычно C:\.

dir.mkdir(path); попытается создать подкаталог с именем path в текущем настроенном каталоге (root). Этот метод ожидает одно имя каталога, а не полный путь. Он также возвращает результат bool, который вы должны проверять.

Возможно, вы хотите позвонить dir.mkpath(path), который попытается создать указанный подкаталог вместе со всеми необходимыми родительскими каталогами, ведущими к нему. Опять же, вы должны проверить результат, чтобы увидеть, был ли он успешным.

0 голосов
/ 10 марта 2012

пожалуйста, проверьте следующие ссылки, где они описали, как создать новый каталог ..

http://www.qtcentre.org/threads/19253-QDir-mkpath

http://www.qtforum.org/article/2210/qdir.html

http://www.developer.nokia.com/Community/Wiki/How_to_use_QDir_in_Qt

...