• Qt 获取选择的文件夹和文件路径


    获取文件夹路径
    1 static QString getExistingDirectory(QWidget *parent = Q_NULLPTR,
    2                                     const QString &caption = QString(),
    3                                     const QString &dir = QString(),
    4                                     Options options = ShowDirsOnly);
    5 参数1:父窗口
    6 参数2:弹出界面的菜单栏文字 
    7 参数3:打开的初始目录 比如“/”表示根目录

    使用方法

     1 void Widget::on_openSrcDirPushButton_clicked()
     2 {
     3     //文件夹路径
     4     srcDirPath = QFileDialog::getExistingDirectory(
     5                this, "choose src Directory",
     6                 "/");
     7 
     8     if (srcDirPath.isEmpty())
     9     {
    10         return;
    11     }
    12     else
    13     {
    14         qDebug() << "srcDirPath=" << srcDirPath;
    15         srcDirPath += "/";
    16     }
    17 }

    注意:
    qDebug() << "srcDirPath=" << srcDirPath;输入我们打开目录的路径,比如:/mnt/hgfs,这时候如果我们要读取这个目录下的文件,此时路径应为这里写代码片/mnt/hgfs/然后加上文件名才是文件的全路径。不过或许大家用不到srcDirPath += “/”;`这一句。

    获取文件路径(选择文件):

    获取文件路径使用getOpenFileName即可。使用方法和getExistingDirectory类似。

     1 static QString getOpenFileName(QWidget *parent = Q_NULLPTR,
     2                                const QString &caption = QString(),
     3                                const QString &dir = QString(),
     4                                const QString &filter = QString(),
     5                                QString *selectedFilter = Q_NULLPTR,
     6                                Options options = Options());
     7 参数1:父窗口
     8 参数2:弹出界面的菜单栏文字 
     9 参数3:打开的初始目录 比如“/”表示根目录  
    10 参数4:设置打开的文件类型   
    11 参数5:看代码。。。

    使用方法:

     1 void Widget::slotBtnClick()
     2 {
     3     QString s = QFileDialog::getOpenFileName(
     4                 this, "选择要播放的文件",
     5                 "/",
     6                 "视频文件 (*.flv *.rmvb *.avi *.mp4);; 所有文件 (*.*);; ");
     7     qDebug() << "path=" << s;
     8     if (!s.isEmpty())
     9     {
    10 
    11     }
    12 }

    另外的方法:

    1 QString file_full, file_name, file_path;  
    2 QFileInfo fi;  
    3   
    4 file_full = QFileDialog::getOpenFileName(this);  
    5   
    6 fi = QFileInfo(file_full);  
    7 file_name = fi.fileName();  
    8 file_path = fi.absolutePath();
     1 void monizhuzhan::filenameInDir()
     2 {
     3     //判断路径是否存在
     4     QDir dir(path);
     5     if(!dir.exists())
     6         return;
     7  
     8     //查看路径中后缀为.cfg格式的文件
     9     QStringList filters;
    10     filters<<QString("*.cfg");
    11     dir.setFilter(QDir::Files | QDir::NoSymLinks); //设置类型过滤器,只为文件格式
    12     dir.setNameFilters(filters);  //设置文件名称过滤器,只为filters格式
    13  
    14     //统计cfg格式的文件个数
    15     int dir_count = dir.count();
    16     if(dir_count <= 0)
    17         return;
    18  
    19 //  //测试
    20 //  //文件路径及名称
    21 //  QFile outFile( "filename.txt");
    22 //  //看能否打开
    23 //  if(!outFile.open(QIODevice::WriteOnly | QIODevice::Append))  
    24 //      return ;  
    25 //  QTextStream ts(&outFile);
    26  
    27     //存储文件名称
    28     QStringList string_list;
    29     for(int i=0; i<dir_count; i++)
    30     {
    31         QString file_name = dir[i];  //文件名称
    32         //ts<<file_name<<"
    "<<"
    ";
    33         string_list.append(file_name);
    34     }
    35  
    36 }

    其中注释部分可实现将文件名称存入到txt中。

    总体思路:得到路径--去除路径下的无效文件--统计个数--获取文件名称

  • 相关阅读:
    烽火2640路由器命令行手册-04-网络协议配置命令
    烽火2640路由器命令行手册-03-广域网配置命令
    烽火2640路由器命令行手册-02-接口配置命令
    烽火2640路由器命令行手册-01-基础配置命令
    烽火R2600交换机配置脚本
    Peer-to-Peer (P2P) communication across middleboxes
    开启Golang编程第一章
    C# 实现登录并跳转界面
    Windows下多个Mysql实例配置主从(转)
    流程内耗的雾霾几时休?
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/13152067.html
Copyright © 2020-2023  润新知