QStandardPaths获得系统目录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wyy626562203/article/details/82843776

QStandardPaths获得系统目录

Qt 5.10.1

方法

QStandardPaths类提供了访问标准路径的方法。
此类包含用于查询本地文件系统上的标准位置的函数,例如用户特定目录或系统配置目录。

根据传入的StandardLocation枚举类型,返回相对应的路径

QString QStandardPaths::displayName(StandardLocation type)

在特定目录下搜索某个可执行程序,若不传如目录,则表示在系统目录中搜索,在大部分系统中,即为PATH所表示的目录位置。所以,如果既想搜索系统目录又想搜索自己指定的目录,则需要调用该函数两次,一次传入目录参数,一次不传该参数即可。 并且,在Windows平台上,不需要为executableName添加.exe后缀,该函数会自动为我们追加。

QString QStandardPaths::findExecutable(const QString &executableName, const QStringList &paths = QStringList())

该函数会返回文件或目录的绝对路径;如果没找到,则返回空字符串。

QString QStandardPaths::locate(StandardLocation type, const QString &fileName, LocateOptions options = LocateFile)
QStringList QStandardPaths::locateAll(StandardLocation type, const QString &fileName, LocateOptions options = LocateFile)

在标准目录下查询一个或多个指定名字的文件或目录。返回属于类型type的所有目录。返回的目录列表按优先级从高到低排序。如果存在writableLocation(),则该目录优先。

QStringList QStandardPaths::standardLocations(StandardLocation type)
QString QStandardPaths::writableLocation(StandardLocation type)

如果testMode为true,则在QStandardPaths中启用一个特殊的“测试模式”,它将可写位置更改为指向测试目录,以防止自动测试读取或写入当前用户的配置。这会影响测试程序可能写入文件的位置:GenericDataLocationDataLocationConfigLocationGenericConfigLocationAppConfigLocationGenericCacheLocationCacheLocation。 其他位置不受影响。
在Unix上,XDG_DATA_HOME设置为〜/.qttest/shareXDG_CONFIG_HOME设置为〜/.qttest/configXDG_CACHE_HOME设置为〜/.qttest/cache
在macOS上,data转到〜/.qttest/Application Support,cache转到〜/.qttest/Cache,config转到〜/.qttest/Preferences
在Windows上,一切都进入Application Data下的“qttest”目录。

void QStandardPaths::setTestModeEnabled(bool testMode)

枚举

Constant Value Description
QStandardPaths::DesktopLocation 0 返回用户的桌面目录。 这是一个通用值。 在没有桌面概念的系统上。
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上,建议使用漫游路径。
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操作系统上,这将返回漫游路径。 该枚举值在Qt 5.4中添加。
QStandardPaths::AppLocalDataLocation DataLocation 返回Windows操作系统上的本地设置路径。 在所有其他平台上,它返回与AppDataLocation相同的值。 该枚举值在Qt 5.4中添加。
QStandardPaths::AppConfigLocation 18 返回用户特定配置文件的目录位置。 这是一个特定于应用程序的目录,返回的路径永远不会为空。 这个枚举值在Qt 5.5中添加。

下表提供了不同操作系统上的路径示例。 第一条路径是可写路径(除非另有说明)。 其他附加路径(如果有)表示不可写的位置。

Path type macOS Windows
DesktopLocation “~/Desktop” “C:/Users//Desktop”
DocumentsLocation “~/Documents” “C:/Users//Documents”
FontsLocation “/System/Library/Fonts” (not writable) “C:/Windows/Fonts” (not writable)
ApplicationsLocation “/Applications” (not writable) “C:/Users//AppData/Roaming/Microsoft/Windows/Start Menu/Programs”
MusicLocation “~/Music” “C:/Users//Music”
MoviesLocation “~/Movies” “C:/Users//Videos”
PicturesLocation “~/Pictures” “C:/Users//Pictures”
TempLocation randomly generated by the OS “C:/Users//AppData/Local/Temp”
HomeLocation “~” “C:/Users/”
DataLocation “~/Library/Application Support/”, “/Library/Application Support/”. “/…/Resources” “C:/Users//AppData/Local/”, “C:/ProgramData/”, “”, “/data”, “/data/”
CacheLocation “~/Library/Caches/”, “/Library/Caches/” “C:/Users//AppData/Local//cache”
GenericDataLocation “~/Library/Application Support”, “/Library/Application Support” “C:/Users//AppData/Local”, “C:/ProgramData”, “”, “/data”
RuntimeLocation “~/Library/Application Support” “C:/Users/”
ConfigLocation “~/Library/Preferences” “C:/Users//AppData/Local/”, “C:/ProgramData/”
GenericConfigLocation “~/Library/Preferences” “C:/Users//AppData/Local”, “C:/ProgramData”
DownloadLocation “~/Downloads” “C:/Users//Documents”
GenericCacheLocation “~/Library/Caches”, “/Library/Caches” “C:/Users//AppData/Local/cache”
AppDataLocation “~/Library/Application Support/”, “/Library/Application Support/”. “/…/Resources” “C:/Users//AppData/Roaming/”, “C:/ProgramData/”, “”, “/data”, “/data/”
AppLocalDataLocation “~/Library/Application Support/”, “/Library/Application Support/”. “/…/Resources” “C:/Users//AppData/Local/”, “C:/ProgramData/”, “”, “/data”, “/data/”
AppConfigLocation “~/Library/Preferences/” “C:/Users//AppData/Local/”, “C:/ProgramData/”
Path type Linux
DesktopLocation “~/Desktop”
DocumentsLocation “~/Documents”
FontsLocation “~/.fonts”
ApplicationsLocation “~/.local/share/applications”, “/usr/local/share/applications”, “/usr/share/applications”
MusicLocation “~/Music”
MoviesLocation “~/Videos”
PicturesLocation “~/Pictures”
TempLocation “/tmp”
HomeLocation “~”
DataLocation “~/.local/share/”, “/usr/local/share/”, “/usr/share/”
CacheLocation “~/.cache/”
GenericDataLocation “~/.local/share”, “/usr/local/share”, “/usr/share”
RuntimeLocation “/run/user/”
ConfigLocation “~/.config”, “/etc/xdg”
GenericConfigLocation “~/.config”, “/etc/xdg”
DownloadLocation “~/Downloads”
GenericCacheLocation “~/.cache”
AppDataLocation “~/.local/share/”, “/usr/local/share/”, “/usr/share/”
AppLocalDataLocation “~/.local/share/”, “/usr/local/share/”, “/usr/share/”
AppConfigLocation “~/.config/”, “/etc/xdg/”
Path type Android iOS
DesktopLocation “/files” “/Documents/Desktop”
DocumentsLocation “/Documents”, “//Documents” “/Documents”
FontsLocation “/system/fonts” (not writable) “/Library/Fonts”
ApplicationsLocation not supported (directory not readable) not supported
MusicLocation “/Music”, “//Music” “/Documents/Music”
MoviesLocation “/Movies”, “//Movies” “/Documents/Movies”
PicturesLocation “/Pictures”, “//Pictures” “/Documents/Pictures”, “assets-library://”
TempLocation “/cache” “/tmp”
HomeLocation “/files” “” (not writable)
DataLocation “/files”, “//files” “/Library/Application Support”
CacheLocation “/cache”, “//cache” “/Library/Caches”
GenericDataLocation “” “/Documents”
RuntimeLocation “/cache” not supported
ConfigLocation “/files/settings” “/Library/Preferences”
GenericConfigLocation “/files/settings” (there is no shared settings) “/Library/Preferences”
DownloadLocation “/Downloads”, “//Downloads” “/Documents/Downloads”
GenericCacheLocation “/cache” (there is no shared cache) “/Library/Caches”
AppDataLocation “/files”, “//files” “/Library/Application Support”
AppConfigLocation “/files/settings” “/Library/Preferences/”
AppLocalDataLocation “/files”, “//files” “/Library/Application Support”

猜你喜欢

转载自blog.csdn.net/wyy626562203/article/details/82843776