Header: include <QFileInfo>
qmake: QT += core
QFileInfo的几个构造函数:
QFileInfo()
QFileInfo(const QString &file)
QFileInfo(const QFile &file)
QFileInfo(const QDir &dir, const QString &file)
QFileInfo(const QFileInfo &fileinfo)
一般用法:
QFileInfo fileInfo(path);
//or
QFileInfo fileInfo;
fileInfo.setFile(path);
bool exists(); 判断文件是否存在,若存在返回true。
qint64 size(); 获取文件大小,返回bytes。
QFileInfo fileInfo(glb_in_put_file_path);
qDebug() << "glb_in_put_file_path" << glb_in_put_file_path;
qDebug() << "fileInfo.exists():" << fileInfo.exists(); //bool exists(); 判断文件是否存在,若存在返回true。
qDebug() << "fileInfo.size():" << fileInfo.size(); //qint64 size(); 获取文件大小,返回bytes。
/*
glb_in_put_file_path "C:/Users/arcadyan/Desktop/crypt_file.tar.bz2"
fileInfo.exists(): true
fileInfo.size(): 998631 998631/1024 =975.225kb
*/
//路径和文件名相关:
QString path(); 返回文件路径,不包含文件名。
QString filePath(); 返回文件路径,包含文件名。
QString fileName(); 返回文件名称。
QFileInfo fileInfo(glb_in_put_file_path);
qDebug() << "glb_in_put_file_path" << glb_in_put_file_path;
qDebug() << "fileInfo.path():" << fileInfo.path();
qDebug() << "fileInfo.fileName():" << fileInfo.fileName();
qDebug() << "fileInfo.baseName():" << fileInfo.baseName();
qDebug() << "fileInfo.completeBaseName():" << fileInfo.completeBaseName();
qDebug() << "fileInfo.suffix():" << fileInfo.suffix();
qDebug() << "fileInfo.completeSuffix():" <<fileInfo.completeSuffix();
/*
glb_in_put_file_path "C:/Users/arcadyan/Desktop/crypt_file.tar.bz2"
fileInfo.path(): "C:/Users/arcadyan/Desktop"
fileInfo.fileName(): "crypt_file.tar.bz2"
fileInfo.baseName(): "crypt_file"
fileInfo.completeBaseName(): "crypt_file.tar"
fileInfo.suffix(): "bz2"
fileInfo.completeSuffix(): "tar.bz2"
*/
//类型:
bool isFile(); 判断是否是文件。
bool isDir(); 判断是否是路径。
bool isSymLink(); 判断是否是符号链接。
//
QString symLinkTarget(): 返回符号链接的文件
QFileInfo fileInfo(glb_in_put_file_path);
qDebug() << "glb_in_put_file_path" << glb_in_put_file_path;
qDebug() << "fileInfo.isFile():" << fileInfo.isFile(); //判断是否是文件
qDebug() << "fileInfo.isDir():" << fileInfo.isDir(); //判断是否是路径
qDebug() << "fileInfo.isSymLink():" << fileInfo.isSymLink(); //判断是否是符号链接
/*
glb_in_put_file_path "C:/Users/arcadyan/Desktop/crypt_file.tar.bz2"
fileInfo.isFile(): true
fileInfo.isDir(): false
fileInfo.isSymLink(): false
*/
//日期相关:
QDateTime created(); 创建时间
QDateTime lastModified(); 最近修改时间
QDateTime lastRead(); 最近读时间
QFileInfo fileInfo(glb_in_put_file_path);
qDebug() << "glb_in_put_file_path" << glb_in_put_file_path;
qDebug() << "fileInfo.created():" << fileInfo.created(); //创建时间
qDebug() << "fileInfo.lastModified():" << fileInfo.lastModified(); //最近修改时间
qDebug() << "fileInfo.lastRead():" << fileInfo.lastRead(); //最近读时间
/*
glb_in_put_file_path "C:/Users/arcadyan/Desktop/crypt_file.tar.bz2"
fileInfo.created(): QDateTime(2017-07-03 16:58:20.774 中国标准时间 Qt::TimeSpec(LocalTime))
fileInfo.lastModified(): QDateTime(2017-07-03 16:58:27.573 中国标准时间 Qt::TimeSpec(LocalTime))
fileInfo.lastRead(): QDateTime(2017-07-03 16:58:26.584 中国标准时间 Qt::TimeSpec(LocalTime))
权限:
isReadable(), isWritable(), isExecutable()
//所有者:
ower(), owerId(), group(), groupId(), permissions(),
permission(QFile::Permissions permissions)
dir(): 返回父目录
//下面三个都返回"~/examples/191697"
QFileInfo fileInfo1("~/examples/191697/.");
QFileInfo fileInfo2("~/examples/191697/..");
QFileInfo fileInfo3("~/examples/191697/main.cpp");
//下面三个都返回”.”
QFileInfo fileInfo4(“.”);
QFileInfo fileInfo5(“..”);
QFileInfo fileInfo6(“main.cpp”);
//相对路径和绝对路径
QString absolute = "/local/bin";
QString relative = "local/bin";
QFileInfo absFile(absolute);
QFileInfo relFile(relative);