目前我比较常用的有两个:
1、#include <QDesktopServices>
2、#include <QApplication>
使用1:
QTextCodec *codec = QTextCodec::codecForLocale();
QTextCodec::setCodecForCStrings(codec);
//获取开始菜单-》程序的路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::ApplicationsLocation);
//获取cache路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
//获取local路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::DataLocation);
//获取桌面路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
//获取我的文档路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
//获取字体路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::FontsLocation);
//获取用户目录路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::HomeLocation);
//获取模式视频存储路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::MoviesLocation);
//获取默认音乐存储路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::MusicLocation);
//获取默认图片存储路径
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::PicturesLocation);
//获取临时文件路径(在windows下路径被替代)
qDebug()<<QDesktopServices::storageLocation(QDesktopServices::TempLocation);
qDebug()<<"----------------------------------------";
//使用openUrl可以打开文件夹或者、可执行程序,与QProcess类似,但是没有QProcess功能强
QString str = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
//打开带有空格、汉字的路径的程序
QUrl url;
//使用函数fromLoaclFile()格式化路径,否则打不开文件,或文件夹。
//openUrl可以调用默认文件打开方式打开文件
url = QUrl::fromLocalFile(QString(str+"/")+QString("新建文 件夹 (3)/Setup_zesafe-2.0.exe"));
qDebug() << url;
//如果打开成功,关闭当前程序
if(QDesktopServices::openUrl(url))
{
qApp->quit(); //qApp是个单实例
}
使用2:
QApplication::setApplicationName("jie");
//获取应用程序所在文件夹路径
qDebug()<<QApplication::applicationDirPath();
//获取应用程序路径
qDebug()<<QApplication::applicationFilePath();
qDebug()<<QApplication::applicationName();