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

 

posted @ 2022-10-27 14:00  一字千金  阅读(10950)  评论(0编辑  收藏  举报