Класс QStandardPaths
Класс QStandardPaths предоставляет методы для доступа к стандартным путям. Подробнее...
| Заголовок: | #include <QStandardPaths> |
| qmake: | QT += core |
| С момента: | Qt 5.0 |
Публичные типы
| перечисление | LocateOption { LocateFile, LocateDirectory } |
| флаги | LocateOptions |
| перечисление | StandardLocation { DesktopLocation, DocumentsLocation, FontsLocation, ApplicationsLocation, ..., AppConfigLocation } |
Статические публичные члены
| QString | displayName(QStandardPaths::StandardLocation type) |
| QString | findExecutable(const QString &executableName, const QStringList &paths = QStringList()) |
| QString | locate(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options) |
| QStringList | locateAll(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options) |
| void | setTestModeEnabled(bool testMode) |
| QStringList | standardLocations(QStandardPaths::StandardLocation type) |
| const QMetaObject | staticMetaObject |
| QString | writableLocation(QStandardPaths::StandardLocation type) |
Подробное описание
Класс QStandardPaths предоставляет методы для доступа к стандартным путям.
Этот класс содержит функции для запроса стандартных расположений на локальной файловой системе для общих задач, таких как каталоги, относящиеся к конкретному пользователю, или системные каталоги конфигурации.
Документация по типам членов
перечисление QStandardPaths::LocateOptionфлаги QStandardPaths::LocateOptions
Это перечисление описывает различные флаги, которые можно использовать для управления поведением QStandardPaths::locate и QStandardPaths::locateAll.
| Константа | Значение | Описание |
|---|---|---|
QStandardPaths::LocateFile |
0x0 |
возвращает только файлы |
QStandardPaths::LocateDirectory |
0x1 |
возвращает только каталоги |
Тип LocateOptions является типом-синонимом для QFlags<LocateOption>. Он хранит логическое ИЛИ сочетание значений LocateOption.
перечисление QStandardPaths::StandardLocation
Это перечисление описывает различные расположения, которые можно запросить, используя методы, такие как QStandardPaths::writableLocation, QStandardPaths::standardLocations и QStandardPaths::displayName.
Некоторые значения в этом перечислении представляют конфигурацию пользователя. Такие значения перечисления будут возвращать одни и те же пути в разных приложениях, поэтому их можно использовать для совместного использования данных с другими приложениями. Другие значения специфичны для данного приложения. Каждое значение перечисления в таблице ниже описывает, является ли оно прикладным или универсальным.
Приложения, относящиеся к конкретному приложению, должны считаться недоступными для других приложений. Таким образом, файлы, размещённые там, могут быть недоступны для других приложений, даже если они запущены одним и тем же пользователем. С другой стороны, универсальные каталоги должны считаться доступными для всех приложений, запущенных этим пользователем, но всё же должны считаться недоступными для приложений других пользователей.
Обмен данными с другими пользователями выходит за рамки QStandardPaths.
| Константа | Значение | Описание |
|---|---|---|
QStandardPaths::DesktopLocation |
0 |
Возвращает каталог рабочего стола пользователя. Это общее значение. На системах без понятия о рабочем столе, это то же самое, что QStandardPaths::HomeLocation. |
QStandardPaths::DocumentsLocation |
1 |
Возвращает каталог, содержащий пользовательские документы. Это общее значение. Возвращаемый путь никогда не пуст. |
QStandardPaths::FontsLocation |
2 |
Возвращает каталог, содержащий шрифты пользователя. Это общее значение. Обратите внимание, что установка шрифтов может потребовать дополнительных операций, специфичных для платформы. |
QStandardPaths::ApplicationsLocation |
3 |
Возвращает каталог, содержащий пользовательские приложения (либо исполняемые файлы, пакеты приложений или ярлыки к ним). Это общее значение. Обратите внимание, что установка приложений может потребовать дополнительных операций, специфичных для платформы. Файлы, папки или ярлыки в этом каталоге специфичны для платформы. |
QStandardPaths::MusicLocation |
4 |
Возвращает каталог, содержащий музыку пользователя или другие аудиофайлы. Это общее значение. Если каталог, специфичный для музыкальных файлов, не существует, возвращается подходящий резервный каталог для хранения пользовательских документов. |
QStandardPaths::MoviesLocation |
5 |
Возвращает каталог, содержащий фильмы и видео пользователя. Это общее значение. Если каталог, специфичный для файлов фильмов, не существует, возвращается подходящий резервный каталог для хранения пользовательских документов. |
QStandardPaths::PicturesLocation |
6 |
Возвращает каталог, содержащий изображения или фотографии пользователя. Это общее значение. Если каталог, специфичный для файлов изображений, не существует, возвращается подходящий резервный каталог для хранения пользовательских документов. |
QStandardPaths::TempLocation |
7 |
Возвращает каталог, где можно хранить временные файлы. Возвращаемое значение может быть специфичным для приложения, общим для других приложений для этого пользователя или даже общесистемным. Возвращаемый путь никогда не пуст. |
QStandardPaths::HomeLocation |
8 |
Возвращает домашний каталог пользователя (то же, что и QDir::homePath()). На Unix-системах это равно переменной окружения HOME. Это значение может быть общим или специфичным для приложения, но возвращаемый путь никогда не пуст. |
QStandardPaths::DataLocation |
9 |
Возвращает то же значение, что и AppLocalDataLocation. Это значение перечисления устарело. Предпочтительно использовать AppDataLocation, поскольку на Windows рекомендуется использование каталога «Roaming». |
QStandardPaths::CacheLocation |
10 |
Возвращает местоположение каталога, куда следует записывать некритичные (кешированные) данные, специфичные для пользователя. Это каталог, специфичный для приложения. Возвращаемый путь никогда не пуст. |
QStandardPaths::GenericCacheLocation |
15 |
Возвращает местоположение каталога, куда следует записывать некритичные (кешированные) данные, общие для приложений, специфичные для пользователя. Это общее значение. Обратите внимание, что возвращаемый путь может быть пустым, если система не имеет понятия о общем кэше. |
QStandardPaths::GenericDataLocation |
11 |
Возвращает местоположение каталога, где можно хранить постоянные данные, общие для приложений. Это общее значение. Возвращаемый путь никогда не пуст. |
QStandardPaths::RuntimeLocation |
12 |
Возвращает местоположение каталога, куда следует записывать файлы для межпроцессного взаимодействия, например, локальные сокеты Unix. Это общее значение. Возвращаемый путь может быть пустым на некоторых системах. |
QStandardPaths::ConfigLocation |
13 |
Возвращает местоположение каталога, куда следует записывать конфигурационные файлы, специфичные для пользователя. Это может быть как общее значение, так и специфичное для приложения, и возвращаемый путь никогда не пуст. |
QStandardPaths::DownloadLocation |
14 |
Возвращает каталог для загруженных пользователем файлов. Это общее значение. Если каталог, специфичный для загрузок, не существует, возвращается подходящий резервный каталог для хранения пользовательских документов. |
QStandardPaths::GenericConfigLocation |
16 |
Возвращает местоположение каталога, куда следует записывать общие конфигурационные файлы, специфичные для пользователя, между несколькими приложениями. Это общее значение, и возвращаемый путь никогда не пуст. |
QStandardPaths::AppDataLocation |
17 |
Возвращает местоположение каталога, где можно хранить постоянные данные приложения. Это каталог, специфичный для приложения. Для получения пути для хранения данных, которые должны быть общими с другими приложениями, используйте QStandardPaths::GenericDataLocation. Возвращаемый путь никогда не пуст. В операционной системе Windows возвращает путь «Roaming». Это значение перечисления было добавлено в Qt 5.4. |
QStandardPaths::AppLocalDataLocation |
DataLocation |
Возвращает путь к локальным настройкам в операционной системе Windows. На всех остальных платформах возвращает то же значение, что и AppDataLocation. Это значение перечисления было добавлено в Qt 5.4. |
QStandardPaths::AppConfigLocation |
18 |
Возвращает местоположение каталога, куда следует записывать конфигурационные файлы, специфичные для пользователя. Это каталог, специфичный для приложения, и возвращаемый путь никогда не пуст. Это значение перечисления было добавлено в Qt 5.5. |
В следующей таблице приведены примеры путей на разных операционных системах. Первый путь — это путь для записи (если не указано иное). Другие дополнительные пути, если таковые имеются, представляют не записиваемые расположения.
| Тип пути | macOS | Windows |
|---|---|---|
| DesktopLocation | "~/Desktop" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/Рабочий стол" |
| DocumentsLocation | "~/Документы" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/Документы" |
| FontsLocation | "/System/Library/Fonts" (не для записи) | "C:/Windows/Fonts" (не для записи) |
| ApplicationsLocation | "/Applications" (не для записи) | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Roaming/Microsoft/Windows/Пуск/Программы" |
| MusicLocation | "~/Музыка" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/Музыка" |
| MoviesLocation | "~/Фильмы" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/Видео" |
| PicturesLocation | "~/Изображения" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/Изображения" |
| TempLocation | случайно сгенерированный ОС | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Local/Временные файлы" |
| HomeLocation | "~" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>" |
| DataLocation | "~/Библиотека/Поддержка приложений/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "/Библиотека/Поддержка приложений/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>". "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/../Ресурсы" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Local/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "C:/ProgramData/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/данные", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/данные/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>" |
| CacheLocation | "~/Библиотека/Кэши/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "/Библиотека/Кэши/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Local/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>/кэш" |
| GenericDataLocation | "~/Библиотека/Поддержка приложений", "/Библиотека/Поддержка приложений" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Local", "C:/ProgramData", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/данные" |
| RuntimeLocation | "~/Библиотека/Поддержка приложений" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>" |
| ConfigLocation | "~/Библиотека/Настройки" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Local/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "C:/ProgramData/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>" |
| GenericConfigLocation | "~/Библиотека/Настройки" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Local", "C:/ProgramData" |
| DownloadLocation | "~/Загрузки" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/Документы" |
| GenericCacheLocation | "~/Библиотека/Кэши", "/Библиотека/Кэши" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Local/кэш" |
| AppDataLocation | "~/Библиотека/Поддержка приложений/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "/Библиотека/Поддержка приложений/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>". "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/../Ресурсы" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Roaming/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "C:/ProgramData/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/данные", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/данные/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>" |
| AppLocalDataLocation | "~/Библиотека/Поддержка приложений/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "/Библиотека/Поддержка приложений/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>". "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/../Ресурсы" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Local/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "C:/ProgramData/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/данные", "<ПУТЬ_К_ПРИЛОЖЕНИЮ>/данные/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>" |
| AppConfigLocation | "~/Библиотека/Настройки/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>" | "C:/Пользователи/<ПОЛЬЗОВАТЕЛЬ>/AppData/Local/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>", "C:/ProgramData/<НАЗВАНИЕ_ПРИЛОЖЕНИЯ>" |
| Тип пути | Linux |
|---|---|
| DesktopLocation | "~/Рабочий стол" |
| DocumentsLocation | "~/Документы" |
| FontsLocation | "~/.fonts" |
| ApplicationsLocation | "~/.local/share/приложения", "/usr/local/share/приложения", "/usr/share/приложения" |
| MusicLocation | "~/Музыка" |
| MoviesLocation | "~/Видео" |
| PicturesLocation | "~/Изображения" |
| TempLocation | "/tmp" |
| HomeLocation | "~" |
| DataLocation | "~/.local/share/<APPNAME>", "/usr/local/share/<APPNAME>", "/usr/share/<APPNAME>" |
| CacheLocation | "~/.cache/<APPNAME>" |
| GenericDataLocation | "~/.local/share", "/usr/local/share", "/usr/share" |
| RuntimeLocation | "/run/user/<USER>" |
| ConfigLocation | "~/.config", "/etc/xdg" |
| GenericConfigLocation | "~/.config", "/etc/xdg" |
| DownloadLocation | "~/Загрузки" |
| GenericCacheLocation | "~/.cache" |
| AppDataLocation | "~/.local/share/<APPNAME>", "/usr/local/share/<APPNAME>", "/usr/share/<APPNAME>" |
| AppLocalDataLocation | "~/.local/share/<APPNAME>", "/usr/local/share/<APPNAME>", "/usr/share/<APPNAME>" |
| AppConfigLocation | "~/.config/<APPNAME>", "/etc/xdg/<APPNAME>" |
| Тип пути | Android | iOS |
|---|---|---|
| DesktopLocation | "<APPROOT>/files" | "<APPROOT>/Документы/Рабочий стол" |
| DocumentsLocation | "<USER>/Документы", "<USER>/<APPNAME>/Документы" | "<APPROOT>/Документы" |
| FontsLocation | "/system/fonts" (не для записи) | "<APPROOT>/Library/Шрифты" |
| ApplicationsLocation | не поддерживается (директория недоступна для чтения) | не поддерживается |
| MusicLocation | "<USER>/Музыка", "<USER>/<APPNAME>/Музыка" | "<APPROOT>/Документы/Музыка" |
| MoviesLocation | "<USER>/Фильмы", "<USER>/<APPNAME>/Фильмы" | "<APPROOT>/Документы/Фильмы" |
| PicturesLocation | "<USER>/Изображения", "<USER>/<APPNAME>/Изображения" | "<APPROOT>/Документы/Изображения", "assets-library://" |
| TempLocation | "<APPROOT>/кеш" | "<APPROOT>/tmp" |
| HomeLocation | "<APPROOT>/files" | "<APPROOT>" (не для записи) |
| DataLocation | "<APPROOT>/files", "<USER>/<APPNAME>/files" | "<APPROOT>/Library/Поддержка приложений" |
| CacheLocation | "<APPROOT>/кеш", "<USER>/<APPNAME>/кеш" | "<APPROOT>/Library/Кэши" |
| GenericDataLocation | "<USER>" | "<APPROOT>/Документы" |
| RuntimeLocation | "<APPROOT>/кеш" | не поддерживается |
| ConfigLocation | "<APPROOT>/files/настройки" | "<APPROOT>/Library/Настройки" |
| GenericConfigLocation | "<APPROOT>/files/настройки" (нет общих настроек) | "<APPROOT>/Library/Настройки" |
| DownloadLocation | "<USER>/Загрузки", "<USER>/<APPNAME>/Загрузки" | "<APPROOT>/Документы/Загрузки" |
| GenericCacheLocation | "<APPROOT>/кеш" (нет общего кэша) | "<APPROOT>/Library/Кэши" |
| AppDataLocation | "<APPROOT>/files", "<USER>/<APPNAME>/files" | "<APPROOT>/Library/Поддержка приложений" |
| AppConfigLocation | "<APPROOT>/files/настройки" | "<APPROOT>/Library/Настройки/<APPNAME>" |
| AppLocalDataLocation | "<APPROOT>/files", "<USER>/<APPNAME>/files" | "<APPROOT>/Library/Поддержка приложений" |
В таблице выше <APPNAME> обычно представляет название организации, приложения или обоих, или уникальное имя, сгенерированное при упаковке. Аналогично, <APPROOT> — это место, где установлено это приложение (часто песочница). <APPDIR> — это директория, содержащая исполняемый файл приложения.
Не следует полагаться на указанные выше пути, так как они могут меняться в зависимости от конфигурации ОС, региональных настроек или в будущих версиях Qt.
Примечание: В Android приложения с открытыми файлами на внешнем хранилище (<USER> расположения) будут завершены, если внешнее хранилище будет размонтировано.
Примечание: В iOS, если вы передаете QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last() в качестве аргумента в QFileDialog::setDirectory(), будет использоваться собственный диалог выбора изображений для доступа к фотоальбому пользователя. Имя файла, возвращенное значение, можно загрузить с помощью QFile и соответствующих API. Эта функция была добавлена в Qt 5.5.
См. также writableLocation(), standardLocations(), displayName(), locate(), и locateAll().
Документация функций-членов
[static] QString QStandardPaths::displayName(QStandardPaths::StandardLocation type)
Возвращает локализованное отображаемое имя для заданного типа расположения type или пустую QString, если соответствующее расположение не найдено.
[static] QString QStandardPaths::findExecutable(const QString &executableName, const QStringList &paths = QStringList())
Ищет исполняемый файл с именем executableName в путях, заданных в paths, или в системных путях, если paths пусто.
На большинстве операционных систем системный путь определяется переменной среды PATH.
Директории, где следует искать исполняемый файл, можно установить в аргументе paths. Чтобы искать как в собственных путях, так и в системных, вызовите findExecutable дважды, один раз с заданным paths и один раз с пустым paths.
Символические ссылки не разрешаются, чтобы сохранить поведение в случае исполняемых файлов, поведение которых зависит от имени, с которым они вызываются.
Примечание: В Windows обычно к исполняемым расширениям (из переменной среды PATHEXT) автоматически добавляются, так что, например, findExecutable("foo") найдет foo.exe или foo.bat, если они присутствуют.
Возвращает абсолютный путь к исполняемому файлу или пустую строку, если не найден.
[static] QString QStandardPaths::locate(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options)
Пытается найти файл или директорию с именем fileName в стандартных расположениях для type.
Возвращается полный путь к первому найденному файлу или директории (в зависимости от options). Если такой файл или директория не найдены, возвращается пустая строка.
[static] QStringList QStandardPaths::locateAll(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options)
Пытается найти все файлы или директории с именем fileName в стандартных расположениях для type.
Флаг options позволяет указать, следует ли искать файлы или директории.
Возвращает список всех найденных файлов.
[static] void QStandardPaths::setTestModeEnabled(bool testMode)
Если testMode равно true, это активирует специальный «тестовый режим» в QStandardPaths, который изменяет пути для записи, чтобы указать на тестовые директории, чтобы предотвратить чтение или запись в конфигурацию текущего пользователя автотестами.
Это влияет на расположения, в которые тестовые программы могут записывать файлы: GenericDataLocation, DataLocation, ConfigLocation, GenericConfigLocation, AppConfigLocation, GenericCacheLocation, CacheLocation. Другие расположения не затронуты.
В Unix, XDG_DATA_HOME устанавливается в ~/.qttest/share, XDG_CONFIG_HOME устанавливается в ~/.qttest/config, и XDG_CACHE_HOME устанавливается в ~/.qttest/cache.
В macOS данные попадают в ~/.qttest/Поддержка приложений, кэш в ~/.qttest/Кэш, и настройки в ~/.qttest/Настройки.
В Windows все попадает в директорию «qttest» в папке «Данные приложений».
END_OF_DOCUMENT_MARKER
[static] QStringList QStandardPaths::standardLocations(QStandardPaths::StandardLocation type)
Возвращает все каталоги, в которых хранятся файлы типа type.
Список каталогов отсортирован по приоритету сверху вниз, начиная с writableLocation(), если его можно определить. Этот список пуст, если для типа type не определены каталоги.
См. также writableLocation().
[static] QString QStandardPaths::writableLocation(QStandardPaths::StandardLocation type)
Возвращает каталог, в который следует сохранять файлы типа type, или пустую строку, если местоположение определить невозможно.
Примечание: Возвращённое местоположение может быть каталогом, который не существует; т.е. его может потребоваться создать системе или пользователю.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qstandardpaths.html