当前位置: 首页 > news >正文

苏州大学网站建设目标搜索引擎排名优化程序

苏州大学网站建设目标,搜索引擎排名优化程序,玉林市住房和城乡建设厅网站,银座网上商城一、目录操作(QDir 类) QDir 类提供访问系统目录结构 QDir 类提供对目录结构及其内容的访问。QDir 用于操作路径名、访问有关路径和文件的信息以及操作底层文件系统。它还可以用于访问 Qt 的资源系统 Qt 使用“/”作为通用目录分隔符,与“/”在 URL 中用作路径分…

一、目录操作(QDir 类)

QDir 类提供访问系统目录结构

QDir 类提供对目录结构及其内容的访问。QDir 用于操作路径名、访问有关路径和文件的信息以及操作底层文件系统。它还可以用于访问 Qt 的资源系统

Qt 使用“/”作为通用目录分隔符,与“/”在 URL 中用作路径分隔符的方式相同。如果您总是使用“/”作为目录分隔符,Qt 将转换您的路径以符合底层操作系统。


QDir 可以使用相对路径或绝对路径指向文件。绝对路径以目录分隔符开头(在 Windows 下,可以选择以驱动器规格开头)。相对文件名以目录名或文件名开头,并指定相对于当前目录的路径。

下面是QDir的一些常用方法:

  1. 构造函数:QDir(const QString &path = QString())

  2. 判断路径是否存在:bool exists() const;

  3. 判断是否是文件:bool isFile() const;

  4. 判断是否是文件夹:bool isDir() const;

  5. 获取当前路径:QString absolutePath() const;

  6. 获取文件名:QString fileName() const;

  7. 获取文件目录:QString dirName() const;

  8. 获取文件大小:qint64 size() const;

  9. 获取文件的创建时间:QDateTime created() const;

  10. 获取文件的最后修改时间:QDateTime lastModified() const;

案例分析:

main.cpp

#include <QCoreApplication>#include <QDir>
#include <QStringList>
#include <QtDebug>// 自定义函数实现获取目录下大小
qint64 GetDirFileInfoSizeFunc(const QString &qpath)
{// QDir类专门用来操作路径名称或底层文件系统,可以使用相对或绝对路径来指向一个文件/目录QDir qdirs(qpath);qint64 qsize=0; // 存放目录占据空间// QFileInfor类提供有关文件系统当中文件名称、路径(位置)、访问权限、文件类型等等信息// entryInfoList函数获取过滤之后获得的文件名夹下面的文件信息列表foreach(QFileInfo finfo,qdirs.entryInfoList(QDir::Files)){qsize=qsize+finfo.size();}// QDir::Dirs列出目录。QDir::separator()不列出文件系统当中的特殊文件foreach(QString sDir,qdirs.entryList(QDir::Dirs|QDir::NoDotAndDotDot)){qsize=qsize+GetDirFileInfoSizeFunc(qpath+QDir::separator()+sDir);}char uint='B';qint64 currentdirsize=qsize;if(currentdirsize>1024){currentdirsize=currentdirsize/1024;uint='K';if(currentdirsize>1024){currentdirsize=currentdirsize/1024;uint='M';if(currentdirsize>1024){currentdirsize=currentdirsize/1024;uint='G';if(currentdirsize>1024){currentdirsize=currentdirsize/1024;uint='T';}}}}qDebug()<<"目录占据空间为:"<<currentdirsize<<"\t"<<qPrintable(qpath);return qsize;
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 该字符串存储路径QString strPath;strPath=QDir::currentPath(); // 获取当前目录qDebug()<<"当前目录为:"<<strPath<<endl;// 调用此函数求目录占据空间的大小GetDirFileInfoSizeFunc(strPath);return a.exec();
}

编译执行结果:

二、QDir 类综合应用展示系统文件实战操作

展示系统文件如下:

代码示例:

qdirfileviews.h

#ifndef QDIRFILEVIEWS_H
#define QDIRFILEVIEWS_H#include <QDialog>#include <QListWidget>  // 列表框
#include <QListWidgetItem>
#include <QLineEdit> // 单行输入框/单行编辑框#include <QDir> // 获取操作路径及底层文件系统
#include <QFileInfoList> // 获取指定目录的基本数据信息#include <QVBoxLayout> // 垂直布局#include <QStringList>class QDirFileViews : public QDialog
{Q_OBJECTpublic:QDirFileViews(QWidget *parent = nullptr);~QDirFileViews();private:QLineEdit *filelineedit; // 显示所选择目录名称QListWidget *filelistwidget; // 列表框:展示目录和文件QVBoxLayout *glayout; // 垂直布局public:void dispfileinfolist(QFileInfoList list); // 显示目录和文件所对应图标public slots:void dispdir(QDir dir);void dispdirshow(QListWidgetItem *item);};
#endif // QDIRFILEVIEWS_H

main.cpp

#include "qdirfileviews.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);QDirFileViews w;w.show();return a.exec();
}

qdirfileviews.cpp

#include "qdirfileviews.h"QDirFileViews::QDirFileViews(QWidget *parent): QDialog(parent)
{resize(500,350);setWindowTitle("QDir类综合控件应用测试");filelineedit=new QLineEdit("/");filelistwidget=new QListWidget;glayout=new QVBoxLayout(this);glayout->addWidget(filelineedit);glayout->addWidget(filelistwidget);// 信号与槽函数连接connect(filelineedit,SIGNAL(returnPressed()),this,SLOT(dispdir(QDir)));connect(filelistwidget,SIGNAL(itemDoubleClicked(QListWidgetItem*)),this,SLOT(dispdirshow(QListWidgetItem*)));QString root="/";QDir rootDir(root);QStringList strlist;strlist<<"*";// entryInfoList函数获取过滤之后获得的文件名夹下面的文件信息列表QFileInfoList list=rootDir.entryInfoList(strlist);// 调用此函数来显示dispfileinfolist(list);}QDirFileViews::~QDirFileViews()
{
}void QDirFileViews::dispfileinfolist(QFileInfoList list) // 显示目录和文件所对应图标
{filelistwidget->clear();for (unsigned int i=0;i<list.count();i++){QFileInfo tempfileinfo=list.at(i);if(tempfileinfo.isDir()) // 判断是目录{QIcon ico("d:/dir.jpg");QString filename=tempfileinfo.fileName();QListWidgetItem *temp=new QListWidgetItem(ico,filename);filelistwidget->addItem(temp);}else if(tempfileinfo.isFile()) // 判断是文件{QIcon ico("d:/file.jpg");QString filename=tempfileinfo.fileName();QListWidgetItem *temp=new QListWidgetItem(ico,filename);filelistwidget->addItem(temp);}}}void QDirFileViews::dispdir(QDir dir)
{QStringList strlist;strlist<<"*";QFileInfoList fileinfolist=dir.entryInfoList(strlist,QDir::AllEntries,QDir::DirsFirst);dispfileinfolist(fileinfolist);
}void QDirFileViews::dispdirshow(QListWidgetItem *item)
{QDir dir;QString str=item->text();dir.setPath(filelineedit->text());dir.cd(str);filelineedit->setText(dir.absolutePath());dispdir(dir);
}

三、QFilelnfo 类介绍

QFileInfo是一个类,用于获取关于文件或目录的元信息。它提供了各种方法来检索有关文件或目录的信息,例如文件的大小、创建时间、修改时间、访问权限等。QFileInfo类也可以用于检查文件或目录是否存在,并检索每个文件或目录的绝对路径。

该类的构造函数需要一个文件路径或目录路径参数。可以使用QFile类的fileInfo方法来生成QFileInfo对象,或者使用QDir类的entryInfo或entryInfoList方法来生成QFileInfo对象。QFileInfo还提供了许多其他的方法,例如isFile(),isDir(),isExecutable()等,用于检查文件或目录的类型和属性。

QFileInfo类是Qt中用于文件和目录操作的常用类之一,可用于创建、修改或删除文件和目录,或处理文件和目录的元数据。

四、QFilelnfo 类获取文件属性及相关信息实战

案例分析:实现下面功能

代码示例:

getfileinfo.cpp

#include "getfileinfo.h"GetFileInfo::GetFileInfo(QWidget *parent): QDialog(parent)
{setWindowTitle("获取文件属性项目实战模块");labelfilename=new QLabel("文件路径名称:");qlineeditfilename=new QLineEdit;qpushbuttongetfilename=new QPushButton("打开文件...");labelfilesize=new QLabel("文件容量大小:");qlineeditfilesize=new QLineEdit;labelfilecreatetime=new QLabel("文件创建时间:");qlineeditfilecreatetime=new QLineEdit;labelfilemodifytime=new QLabel("文件修改时间:");qlineeditfilemodifytime=new QLineEdit;labelfileaccesstime=new QLabel("文件访问时间:");qlineeditfileaccesstime=new QLineEdit;qlabelfileattribute=new QLabel("文件属性");qcheckboxisfile=new QCheckBox("文件");qcheckboxishide =new QCheckBox("隐藏属性");qcheckboxisreadable =new QCheckBox("只读属性");qcheckboxiswritable=new QCheckBox("只写属性");qcheckboxisexecute=new QCheckBox("执行权限");qpushbuttongetfileattributeinfo=new QPushButton("获取文件属性的全部数据信息...");// 布局QGridLayout *glayout=new QGridLayout;glayout->addWidget(labelfilename,0,0);glayout->addWidget(qlineeditfilename,0,1);glayout->addWidget(qpushbuttongetfilename,0,2);glayout->addWidget(labelfilesize,1,0);glayout->addWidget(qlineeditfilesize,1,1,1,2);glayout->addWidget(labelfilecreatetime,2,0);glayout->addWidget(qlineeditfilecreatetime,2,1,1,2);glayout->addWidget(labelfilemodifytime,3,0);glayout->addWidget(qlineeditfilemodifytime,3,1,1,2);glayout->addWidget(labelfileaccesstime,4,0);glayout->addWidget(qlineeditfileaccesstime,4,1,1,2);// 水平布局QHBoxLayout *hlayout=new QHBoxLayout;hlayout->addWidget(qlabelfileattribute);hlayout->addStretch();QHBoxLayout *hlayoutat=new QHBoxLayout;hlayoutat->addWidget(qcheckboxisfile);hlayoutat->addWidget(qcheckboxishide);hlayoutat->addWidget(qcheckboxisreadable);hlayoutat->addWidget(qcheckboxiswritable);hlayoutat->addWidget(qcheckboxisexecute);QHBoxLayout *hlayoutgetbtn=new QHBoxLayout;hlayoutgetbtn->addWidget(qpushbuttongetfileattributeinfo);//  垂直布局QVBoxLayout *vlayout=new QVBoxLayout(this);vlayout->addLayout(glayout);vlayout->addLayout(hlayout);vlayout->addLayout(hlayoutat);vlayout->addLayout(hlayoutgetbtn);// 信号与槽函数连接connect(qpushbuttongetfilename,SIGNAL(clicked()),this,SLOT(getfilepathandname()));connect(qpushbuttongetfileattributeinfo,SIGNAL(clicked()),this,SLOT(getfileattributeinfo()));
}GetFileInfo::~GetFileInfo()
{
}void GetFileInfo::getfilepathandname()
{QString filepathname;filepathname=QFileDialog::getOpenFileName(this,"打开文件对话框","/","files(*)");qlineeditfilename->setText(filepathname);}void GetFileInfo::getfileattributeinfo()
{QString strfile=qlineeditfilename->text();QFileInfo qfi(strfile);qint64 filesize=qfi.size(); // 获取文件容量大小QDateTime createtime=qfi.created(); // 文件创建时间QDateTime lastmodifytime=qfi.lastModified(); // 最后修改时间QDateTime lastaccesstime=qfi.lastRead(); // 最后访问时间bool bfile=qfi.isFile();bool bhide=qfi.isHidden();bool bread=qfi.isReadable();bool bwrite=qfi.isWritable();bool bexecute=qfi.isExecutable();qlineeditfilesize->setText(QString::number(filesize));qlineeditfilecreatetime->setText(createtime.toString());qlineeditfilemodifytime->setText(lastmodifytime.toString());qlineeditfileaccesstime->setText(lastaccesstime.toString());qcheckboxisfile->setCheckState(bfile?Qt::Checked:Qt::Unchecked);qcheckboxishide->setCheckState(bhide?Qt::Checked:Qt::Unchecked);qcheckboxisreadable->setCheckState(bread?Qt::Checked:Qt::Unchecked);qcheckboxiswritable->setCheckState(bwrite?Qt::Checked:Qt::Unchecked);qcheckboxisexecute->setCheckState(bexecute?Qt::Checked:Qt::Unchecked);}

getfilefo.h

#ifndef GETFILEINFO_H
#define GETFILEINFO_H#include <QDialog>#include <QLabel>
#include <QLineEdit>
#include <QCheckBox>
#include <QPushButton>#include <QFileDialog> // 引用文件对话框
#include <QDateTime>
#include <QHBoxLayout>
#include <QVBoxLayout>class GetFileInfo : public QDialog
{Q_OBJECTpublic:GetFileInfo(QWidget *parent = nullptr);~GetFileInfo();private:QLabel *labelfilename;QLineEdit *qlineeditfilename;QPushButton *qpushbuttongetfilename;// 文件容量大小QLabel *labelfilesize;QLineEdit *qlineeditfilesize;// 文件创建时间QLabel *labelfilecreatetime;QLineEdit *qlineeditfilecreatetime;// 文件修改时间QLabel *labelfilemodifytime;QLineEdit *qlineeditfilemodifytime;// 文件访问时间QLabel *labelfileaccesstime;QLineEdit *qlineeditfileaccesstime;// 文件属性及复选控件QLabel *qlabelfileattribute;QCheckBox *qcheckboxisfile;QCheckBox *qcheckboxishide;QCheckBox *qcheckboxisreadable;QCheckBox *qcheckboxiswritable;QCheckBox *qcheckboxisexecute;QPushButton *qpushbuttongetfileattributeinfo;// 声明槽函数
private slots:void getfilepathandname();void getfileattributeinfo();};
#endif // GETFILEINFO_H

main.cpp

#include "getfileinfo.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);GetFileInfo w;w.show();return a.exec();
}

http://www.hengruixuexiao.com/news/33329.html

相关文章:

  • 设计网站作品下拉框关键词软件
  • 怎样做网站赚流量做网站的费用
  • php网站开发就业合肥seo推广培训班
  • 微信公众号链接的网站怎么做行业关键词查询
  • 笑话网站域名肇庆百度快速排名
  • 重庆秀山网站建设报价百度信息流是什么
  • 遂宁网页设计公司电子商务seo实训总结
  • 免费一键网站app推广方式
  • 网站建设公司制作网站怎么做产品推广和宣传
  • 东莞石龙网站建设莞网站制作二级域名分发平台
  • 全国企业信息查询网seo平台是什么意思
  • 苏州做网站套路骗品牌活动策划
  • 美橙互联网站建设案例seo快速优化报价
  • 门户网站服务范围新手怎样做网络推广
  • 表白网页生成器手机版合肥seo推广公司哪家好
  • 外贸自建站模板上海网站建设联系方式
  • 用源码做网站上海短视频推广
  • 网络营销公司招聘广州seo推广服务
  • 建站网址导航hao123潍坊今日头条新闻
  • 论职能网站建设制作网页app
  • 重庆市建设工程造价站爱站关键词查询
  • 自己做图片上传网站站长统计官方网站
  • 做网站都需要数据库吗免费个人主页网站
  • 官方网站下载派的app广州百度搜索优化
  • 如何做产品网站网页设计中国seo关键词优化工具
  • 深圳华强做网站百度交易平台官网
  • 网站建设一般用哪种语言开发秘密入口3秒自动进入
  • 北京网站搭建服务商网站流量查询网站统计查询
  • 单位门户网站建设方案高质量软文
  • 做网站去哪个平台做网络推广的网站有哪些