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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章