QT打开文件夹或文件,选择文件夹或者选择文件
1.QProcess加explorer弹出打开文件夹
1.1打开文件夹,并自动选中目标文件
void HisPicItem::SlotOpenTargetFile(QString strfile) { QString strPicPath = strfile; strPicPath.replace("/", "\\"); //win32下替换斜杠 QProcess process; process.startDetached("explorer", QStringList() << QString("/select,") << QString("%1").arg(strPicPath)); }
效果如下
1.2.只打开文件夹
QString strpicPath = m_strDefaultPicPath; strpicPath.replace("/", "\\"); //win32下替换斜杠 QProcess process; process.startDetached("explorer", QStringList() << QString("/root,") << QString("%1").arg(strpicPath));
效果如下:
命令格式
Explorer [/n][/e][[,/root],[path]][[,/select],[path filename]]
参数说明
/n表示以“我的电脑”方式打开一个新的窗口,通常打开的是Windows安装分区的根目录。
/e表示以“资源管理器”方式打开一个新的窗口,通常打开的也是Windows安装分区的根目录。
/root,[path]表示打开指定的文件夹,/root表示只显示指定文件夹下面的文件(夹),不显示其它磁盘分区和文件夹;[path]表示指定的路径。
如果不加/root参数,而只用[path]参数,则可以显示其它磁盘分区和文件夹中的内容。另外,[path]还可以指定网络共享文件夹。
/select,[path filename]表示打开指定的文件夹并且选中指定的文件,[path filename]表示指定的路径和文件名。
如果不加/select参数,则系统会用相应的关联程序打开该文件。如果[path filename]不跟文件名就会打开该文件夹的上级目录并选中该文件夹。
应用实例
1.以“资源管理器”方式打开E盘根目录
单击“开始→运行”,输入“explorer /e,/root,e:\”,回车即可。如果需要显示其它磁盘分区和文件夹中的内容,可以输入“explorer /e,e:\”。
2.以“我的电脑”方式打开“E:\Download”目录下的QQ.exe文件在“开始→运行”中键入“explorer /n,/select e:\download\qq.exe”或“explorer /select e:\download\qq.exe”,回车即可。
3.通过“开始”菜单中的“Windows 资源管理器”命令打开特定窗口
以在Windows XP下打开E盘根目录为例。首先在“开始”菜单中用鼠标右键单击“所有程序→附件→Windows 资源管理器”项,选择“属性”命令。接着在弹出窗口的“目标”栏中输入“%SystemRoot%\explorer.exe /e,e:\”(默认值是“%SystemRoot%\explorer.exe”)即可。
4.在右键菜单里添加“打开我的文件夹”命令打开特定文件
以在Windows XP下打开“E:\myfolder”文件夹为例。在“开始→运行”中输入“Regedit”,打开“注册表编辑器”,展开分支“HKEY_CLASSES_ROOT\Directory\shell,接着在右边窗口中新建一个名为“PersonalWindow”的子键,并将默认值改成“打开我的文件夹”;然后在“PersonalWindow”下新建一个名为“Command”的子键,在右侧的窗口中将“默认”值改为“explorer.exe /e,E:\myfolder”。这样就可以在浏览任何文件夹的时候,通过右键快捷菜单中的“打开我的文件夹”命令快速以资源管理器方式打开“E:\myfolder”文件夹。
示例
以下示例说明了 Windows 资源管理器参数的用法。
? Explorer /n
此命令使用默认设置打开一个资源管理器窗口。显示的内容通常是安装 Windows 的驱动器的根目录。
? Explorer /e
此命令使用默认视图启动 Windows 资源管理器。
? Explorer /e,C:\Windows
此命令使用默认视图启动 Windows 资源管理器,并把焦点定位在 C:\Windows。
? Explorer /root, C:\Windows\Cursors
此命令启动 Windows 资源管理器后焦点定位在 C:\Windows\Cursors folder。此示例使用
C:\Windows\Cursors 作为 Windows 资源管理器的“根”目录。
备注:请注意命令中“/root”参数后面的逗号。
Explorer /select, C:\Windows\Cursors\banana.ani
此命令启动 Windows 资源管理器后选定“C:\Windows\Cursors\banana.ani”文件。
备注
请注意命令中“/select”参数后面的逗号。
Windows 资源管理器参数可以在一个命令中进行组合。以下示例显示了 Windows 资源管理器命令行参数的组合。
Explorer /root, \\server\share, select, Program.exe
此命令启动 Windows 资源管理器时以远程共享作为“根”文件夹,而且 Program.exe 文件将被选中
2.QFileDialog 选择文件或文件夹
2.1 带过滤器的打开文件夹,选择其中文件
QStringList fileNameList = QFileDialog::getOpenFileNames(this, QString::fromLocal8Bit("添加视频"), "", tr("vedio(*.mp4 *.avi *.ps *.ts *.asf *.flv *.dahv *.mov)"));
2.2 选择文件夹路径
QFileDialog fileDialog; QString strTargetFile = fileDialog.getExistingDirectory(this, tr("选择保存路径"), m_strDefaultPicPath);
2.3 另存为一个文件
QFileDialog fileDialog; QString strTargetFile = fileDialog.getSaveFileName(this, tr("另存为"), m_strDefaultPicPath, tr("vedio(*.mp4)"));
默认格式是mp4