Qt - 获取各种路径的方法

欢迎转载,请注明出处:https://blog.csdn.net/qq_39453936?spm=1010.2135.3001.5343
原文链接: https://blog.csdn.net/qq_39453936/article/details/120720369


系统标准路径类QStandardPaths

//尝试在类型的标准位置中查找名为fileName的文件或目录。
//返回找到的第一个文件或目录(取决于选项)的完整路径。如果找不到这样的文件或目录,则返回空字符串。
[static] QString QStandardPaths::locate(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = LocateFile)
//尝试在类型的标准位置中查找名为fileName的所有文件或目录。
//选项标志允许指定是否查找文件或目录。
//返回找到的所有文件的列表。
[static] QStringList QStandardPaths::locateAll(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = LocateFile)
//返回给定位置类型的本地化显示名称,如果找不到相关位置,则返回空QString。
[static] QString QStandardPaths::displayName(QStandardPaths::StandardLocation type)
//在路径指定的路径或系统路径(如果路径为空)中查找名为executableName的可执行文件。
//返回可执行文件的绝对文件路径,如果未找到,则返回空字符串。
[static] QString QStandardPaths::findExecutable(const QString &executableName, const QStringList &paths = QStringList())
//返回类型为的文件所属的所有目录。
//目录列表从高优先级到低优先级排序,如果可以确定位置,则从writableLocation()开始。如果未定义类型的位置,则此列表为空。
[static] QStringList QStandardPaths::standardLocations(QStandardPaths::StandardLocation type)
//返回类型为的文件应写入的目录,如果无法确定位置,则返回空字符串。
//注意:返回的存储位置可以是不存在的目录;i、 例如,它可能需要由系统或用户创建。
[static] QString QStandardPaths::writableLocation(QStandardPaths::StandardLocation type)

枚举QStandardPaths::StandardLocation

QStandardPaths类型在不同系统中的相关路径:

Path typemacOSWindows
Path typemacOSWindows
DesktopLocation“~/Desktop”“C:/Users/< USER>/Desktop”
DocumentsLocation“~/Documents”“C:/Users/< USER>/Documents”
FontsLocation“/System/Library/Fonts” (not writable)“C:/Windows/Fonts” (not writable)
ApplicationsLocation“/Applications”(not writable)“C:/Users/< USER>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs”
MusicLocation“~/Music”“C:/Users/< USER>/Music”
MoviesLocation“~/Movies”“C:/Users/< USER>/Videos”
PicturesLocation“~/Pictures”C:/Users/< USER>/Pictures"
TempLocationrandomly generated by the OS“C:/Users/< USER>/AppData/Local/Temp”
HomeLocation“~”“C:/Users/< USER>”
DataLocation“~/Library/Application Support/< APPNAME>”, “/Library/Application Support/< APPNAME>”. “< APPDIR>/…/Resources”“C:/Users/< USER>/AppData/Local/< APPNAME>”, “C:/ProgramData/< APPNAME>”, “< APPDIR>”, “< APPDIR>/data”, “< APPDIR>/data/< APPNAME>”
CacheLocation“~/Library/Caches/< APPNAME>”, “/Library/Caches/< APPNAME>”“C:/Users/< USER>/AppData/Local/< APPNAME>/cache”
GenericDataLocation“~/Library/Application Support”, “/Library/Application Support”“C:/Users/< USER>/AppData/Local”, “C:/ProgramData”, “< APPDIR>”, “< APPDIR>/data”
RuntimeLocation“~/Library/Application Support”“C:/Users/< USER>”
ConfigLocation“~/Library/Preferences”“C:/Users/< USER>/AppData/Local/< APPNAME>”, “C:/ProgramData/< APPNAME>”
GenericConfigLocation“~/Library/Preferences”“C:/Users/< USER>/AppData/Local”, “C:/ProgramData”
DownloadLocation“~/Downloads”“C:/Users/< USER>/Documents”
GenericCacheLocation“~/Library/Caches”, “/Library/Caches”“C:/Users/< USER>/AppData/Local/cache”
AppDataLocation“~/Library/Application Support/< APPNAME>”, “/Library/Application Support/< APPNAME>”. “< APPDIR>/…/Resources”“C:/Users/< USER>/AppData/Roaming/< APPNAME>”, “C:/ProgramData/< APPNAME>”, “< APPDIR>”, “< APPDIR>/data”, “< APPDIR>/data/< APPNAME>”
AppLocalDataLocation“~/Library/Application Support/< APPNAME>”, “/Library/Application Support/< APPNAME>”. “< APPDIR>/…/Resources”“C:/Users/< USER>/AppData/Local/< APPNAME>”, “C:/ProgramData/< APPNAME>”, “< APPDIR>”, “< APPDIR>/data”, “< APPDIR>/data/< APPNAME>”
AppConfigLocation“~/Library/Preferences/< APPNAME>”“C:/Users/< USER>/AppData/Local/< APPNAME>”, “C:/ProgramData/< APPNAME>”

更多…


获取程序所在路径

QCoreApplication 类里就实现了相关的功能:

QString QCoreApplication::applicationDirPath()

比如我们有一个程序在:

C:/Qt/examples/tools/regexp/regexp.exe

那么 qApp->applicationDirPath() 的结果是:

C:/Qt/examples/tools/regexp

如果除了程序所在路径,我们还想要程序的完整名称。那么可以这么写:

qApp->applicationFilePath()

还是上面的例子,结果是:

C:/Qt/examples/tools/regexp/regexp.exe

获取当前工作目录

QDir 提供了一个静态函数 currentPath() 可以获取当前工作目录,函数原型如下:

QString QDir::currentPath()

如果我们是双击一个程序运行的,那么程序的工作目录就是程序所在目录。

如果是在命令行下运行一个程序,那么运行程序时在命令行的哪个目录,那个目录就是当前目录。


参考文章:https://blog.csdn.net/liyuanbhu/article/details/53710249
小白发文,欢迎指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值