您当前的位置: 首页 >  qt

令狐掌门

暂无认证

  • 3浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt获取文件详细信息:QFileInfo的用法

令狐掌门 发布时间:2020-03-27 17:11:08 ,浏览量:3

      通过类QFileInfo可以获取文件信息,选择一个文件,即可分析出该文件的信息。

         QFileInfo类有很多方法,例如:

    bool exists() const;
    static bool exists(const QString &file);
    void refresh();

    QString filePath() const;
    QString absoluteFilePath() const;
    QString canonicalFilePath() const;
    QString fileName() const;
    QString baseName() const;
    QString completeBaseName() const;
    QString suffix() const;
    QString bundleName() const;
    QString completeSuffix() const;

    QString path() const;
    QString absolutePath() const;
    QString canonicalPath() const;
    QDir dir() const;
    QDir absoluteDir() const;

    bool isReadable() const;
    bool isWritable() const;
    bool isExecutable() const;
    bool isHidden() const;
    bool isNativePath() const;

    bool isRelative() const;
    inline bool isAbsolute() const { return !isRelative(); }
    bool makeAbsolute();

    bool isFile() const;
    bool isDir() const;
    bool isSymLink() const;
    bool isRoot() const;
    bool isBundle() const;

    QString readLink() const;
    inline QString symLinkTarget() const { return readLink(); }

    QString owner() const;
    uint ownerId() const;
    QString group() const;
    uint groupId() const;

    bool permission(QFile::Permissions permissions) const;
    QFile::Permissions permissions() const;

    qint64 size() const;

        通过方法的字面意思就可以知道是什么作用,例如,上面的demo是获取了文件名,绝对路径,修改时间,创作时间等。

        点击按钮选择文件,显示用的是QPlainTextEdit,可以多行追加显示,主要代码如下:

void Widget::on_btnSelectFile_clicked()
{
    QString filename = QFileDialog::getOpenFileName(
                        this, "选择要播放的文件",
                        "/",
                        "视频文件 (*.flv *.rmvb *.avi *.mp4);; 所有文件 (*.*);; ");

    if(!(filename.isEmpty()))
    {
        ui->lineEdit->setText(filename);

        QFileInfo file(filename);

        //文件名称
        QString _filename = tr("文件名称 ") + file.fileName();

        //文件大小,字节为单位
        qint64 size = file.size();
        int kb = size / 1024;

        QString _filesize = tr("文件大小 ") + QString::number(kb) + "k";

        QDateTime create = file.created();
        QString _createTime = tr("创建时间 ") + create.toString("yyyy-MM-dd hh:mm:ss");

        //文件的绝对路径
        QString _aPath = tr("绝对路径 ") + file.absoluteFilePath();

        //文件修改时间
        QString _time =  tr("修改时间 ") + file.lastModified().toString("yyyy-MM-dd hh:mm:ss");
        QString _readTime = tr("最后阅读时间 ") + file.lastRead().toString("yyyy-MM-dd hh:mm:ss");

        ui->plainTextEdit->appendPlainText(_filename);
        ui->plainTextEdit->appendPlainText(_filesize);
        ui->plainTextEdit->appendPlainText(_aPath);
        ui->plainTextEdit->appendPlainText(_time);
        ui->plainTextEdit->appendPlainText(_createTime);
        ui->plainTextEdit->appendPlainText(_readTime);
        ui->plainTextEdit->appendPlainText(_aPath);
    }
}

       还可以获取文件的读写属性、权限等,可以自己写代码试试。

       界面qss代码如下:

QWidget
{
	background-color:rgb(54,54,54);
}

QLineEdit,QPlainTextEdit
{
	color:white;
	font:13px;

	/*边界线 border:none 没有边界*/
	border:1px solid rgb(128, 138, 135);

	/*背景的颜色*/
	background: rgb(54, 54, 54);

	/*边角4像素圆滑*/
	border-radius: 4px;
}

/*鼠标滑动到LineEditor时*/
QLineEdit::hover
{
  	color:rgb(250,250,250);  /*字体的颜色*/
  	border-color:rgb(50,480,40);
  	background-color:rgb(47,79,79);
}

QPushButton
{
	background-color:rgb(128, 138, 135);
	color:white;
    font:16px;
    border-radius:6px; 
}

QPushButton:hover
{
    color:#0000ff;
    background-color:rgb(210, 205, 205); /*改变背景色*/
    border-style:inset;/*改变边框风格*/
    padding-left:1px;
    padding-top:1px;
}

  本例子源码链接:https://gitee.com/qwerwo/QtFileMonitor

  QtCreator项目,可以直接运行。

  github有时上不了,国际形势啊!!!

                  

关注
打赏
1652240117
查看更多评论
立即登录/注册

微信扫码登录

0.0797s