首页 > 其他 > 详细

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

时间:2019-03-31 20:25:16      阅读:155      评论:0      收藏:0      [点我收藏+]
获取文件夹路径
static QString getExistingDirectory(QWidget *parent = Q_NULLPTR,
                                    const QString &caption = QString(),
                                    const QString &dir = QString(),
                                    Options options = ShowDirsOnly);
参数1:父窗口
参数2:弹出界面的菜单栏文字 
参数3:打开的初始目录 比如“/”表示根目录

使用方法

void Widget::on_openSrcDirPushButton_clicked()
{
    //文件夹路径
    srcDirPath = QFileDialog::getExistingDirectory(
               this, "choose src Directory",
                "/");

    if (srcDirPath.isEmpty())
    {
        return;
    }
    else
    {
        qDebug() << "srcDirPath=" << srcDirPath;
        srcDirPath += "/";
    }
}

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

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

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

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

使用方法:

void Widget::slotBtnClick()
{
    QString s = QFileDialog::getOpenFileName(
                this, "选择要播放的文件",
                "/",
                "视频文件 (*.flv *.rmvb *.avi *.mp4);; 所有文件 (*.*);; ");
    qDebug() << "path=" << s;
    if (!s.isEmpty())
    {

    }
}

另外的方法:

QString?file_full,?file_name,?file_path;??
QFileInfo?fi;??
??
file_full?=?QFileDialog::getOpenFileName(this);??
??
fi?=?QFileInfo(file_full);??
file_name?=?fi.fileName();??
file_path?=?fi.absolutePath();
void monizhuzhan::filenameInDir()
{
    //判断路径是否存在
    QDir dir(path);
    if(!dir.exists())
        return;
 
    //查看路径中后缀为.cfg格式的文件
    QStringList filters;
    filters<<QString("*.cfg");
    dir.setFilter(QDir::Files | QDir::NoSymLinks); //设置类型过滤器,只为文件格式
    dir.setNameFilters(filters);  //设置文件名称过滤器,只为filters格式
 
    //统计cfg格式的文件个数
    int dir_count = dir.count();
    if(dir_count <= 0)
        return;
 
//  //测试
//  //文件路径及名称
//  QFile outFile( "filename.txt");
//  //看能否打开
//  if(!outFile.open(QIODevice::WriteOnly | QIODevice::Append))  
//      return ;  
//  QTextStream ts(&outFile);
 
    //存储文件名称
    QStringList string_list;
    for(int i=0; i<dir_count; i++)
    {
        QString file_name = dir[i];  //文件名称
        //ts<<file_name<<"\r\n"<<"\r\n";
        string_list.append(file_name);
    }
 
}

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

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

【更多参考】

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

原文:https://www.cnblogs.com/ZY-Dream/p/10632890.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!