在Qt编写的程序中打开文件夹

转自:http://blog.csdn.net/yangxiao_0203/article/details/6634293

我们知道在dos命令行中可以用"start explorer 地址"的格式打开指定的文件夹。在编程中使用system函数然后再调用前面那句,虽然可以打开指定文件夹,但是总会有dos的黑框闪过,很不美观。

下面讲讲在Qt中我使用的方法。以打开程序当前目录为例。这里要用到QProcess类中的静态函数startDetached:

    QString path=QDir::currentPath();//获取程序当前目录
    path.replace("/","\\");//将地址中的"/"替换为"\",因为在Windows下使用的是"\"。
    QProcess::startDetached("explorer "+path);//打开上面获取的目录

注意,在QProcess类中还有个start()函数,也可以用于启动程序。但是在这里不能用。因为explorer是系统正在运行的程序,而start()函数不会重复运行正在运行的程序,也就无法打开文件夹了。

再补充一种方法:

QDesktopServices::openUrl(QUrl("file:///C:/Documents and Settings/All Users", QUrl::TolerantMode));

QDesktopServices::openUrl(QUrl::fromLocalFile("..."));

你可能感兴趣的:(qt,打开文件夹)