Работа с директориями. Класс QDir


Разные платформы имеют разные способы представления путей. ОС Windows содержит буквы дисков, например: C:\Windows\System. UNIX использует root, например: /usr/bin. Обратите внимание, что для разделения имен директорий в обоих представлениях используются разные знаки. Для представления директорий в платформонезависимой форме Qt предоставляет класс QDir.

Для этих целей класс предоставляет целый ряд статических методов:

  • QDir::current() — возвращает путь директории приложения;
  • QDir::root () — возвращает root-директорию;
  • QDir::drives ()—возвращает указатель на список объектов класса
  • QFileinfo с узловыми директориями (root). Для Windows это будут С:\, D:\ и т. д.;
  • QDir::home () — возвращает персональную директорию пользователя.

Класс QDir не предоставляет методов для определения текущего каталога приложения. Но если вам потребуется определить, из какого каталога было запущенно приложение, то следует воспользоваться методом QApplication::applicationDirPath(), либо QApplication::applicationFilePath(), возвращающим, в добавок ко всему, и имя приложения.

Существование директории можно проверить с помощью метода exists(). Чтобы перемещаться по директориям, можно использовать метод cd(), который принимает, в качестве параметра, абсолютный путь директории, и cdUp(). Вызов cd("..") эквивалентен вызову метода cdUp().

Для конвертирования относительного пути директории в абсолютный можно вызвать метод makeAbsolute().

Для создания директории нужно вызвать метод mkdir(). В случае успешного проведения этой операции метод вернет значение true, в случае неудачи — false.

Если вам потребуется переименовать директорию, то воспользуйтесь методом rename(). В этот метод первым параметром нужно передать старый путь, а вторым — новый. Если операция будет проведена успешно, то метод вернет true, иначе — false.

Удаление директорий производится методом rmdir(), который получает путь, и в случае успеха возвращает true, а в случае неудачи — false.

Читать далее: Просмотр содержимого директории с помощью QDir