通过类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有时上不了,国际形势啊!!!