怎样查看网站是用什么cms 做的,哪种网站开发最简单,怎么分析网页的布局,方维网站建设描述
QFileInfo类提供了与系统无关的文件信息。 QFileInfo提供有关文件的名称和位置#xff08;路径#xff09;在文件系统中的信息#xff0c;以及它的访问权限、是否为目录或符号链接等。还可以获取文件的大小和最后修改/读取时间。QFileInfo还可以用于获取关于Qt资源的信…描述
QFileInfo类提供了与系统无关的文件信息。 QFileInfo提供有关文件的名称和位置路径在文件系统中的信息以及它的访问权限、是否为目录或符号链接等。还可以获取文件的大小和最后修改/读取时间。QFileInfo还可以用于获取关于Qt资源的信息。 QFileInfo可以指向具有相对或绝对文件路径的文件。绝对文件路径以目录分隔符“/”或在Windows上以驱动器规范开头。相对文件名以目录名或名开头并指定相对于当前工作目的路径。绝对路径的示例是字符串“/tmp/quartz”。相对路径可能看起来像“src/fatlib”。可以使用函数isRelative()检查QFileInfo是否使用对或绝对文件路径您可以调用函数makeAbsolute()将相对QFileInfo的路径转换为绝对路径。 QFileInfo所操作的文件在构造函数中或以后通过set()设置。使用exists()来检查文件是否存在size()来获取文件。 可以使用isFile()、isDir()和isSymLink()获取文件的类型。symLinkTarget()函数提供了符号链接指向的文件的名称。 在Unix括macOS和iOS上符号链接与指向的文件相同大小()因为Unix透明处理符号链接同样使用QFile打开符号链接实际上打开了链接的目标。例如
#ifdef Q_OS_UNIX
QFileInfo info1(/home/bob/bin/untify);
info1.isSymLink(); // returns true
info1.absoluteFilePath(); // returns /home/bob/bin/untabify
info1.size(); // returns 56201
info1.symLinkTarget(); // returns /opt/prettybin/untabifyQFileInfo info2(info1.symLink());
info2.isSymLink(); // returns false
info2.absoluteFilePath(); // returns /opt/pretty/bin/untabify
info2.size(); // returns 56201
#endif在Windows上符号链接快捷方式是.lnk文件。报告的size()是符号链接的大小而不是链接的目标使用QFile打开符号链接会打开.lnk。例如
#ifdef Q_OS_WINQFileInfo info1(C:\\Documents and Settings\\Bob\\untabify.lnk);
info1.isSymLink(); // returns true
info1.absoluteFilePath(); // returns C:/Documents and Settings/Bob/untabify.lnk
info1.size(); // returns 743
info1.symLinkTarget(); // returns C:/Pretty/abifyQFileInfo info2(info1.symLinkTarget());
info2.isSymLink(); returns false
info2.absoluteFilePath(); // returns CPretty/untabify
info2.size(); returns 63942#endif可以使用path()和fileName提取文件名的元素。可以使用baseName()、suffix()或completeSuffix()提取fileName()的各个部。由Qt类创建的FileInfo对象的目录将不具有尾部文件分隔符。如果希望在自己的文件信息对象中使用尾分隔符只需将其附加到构造函数或setFile()给定的文件名即可。 文件的日期由created()、lastModified()和lastRead()返回。可以使用isReadable()、isWritable()和is()获取有关文件的访问权限的信息。文件的所有权可以从owner()、ownerId、group()和groupId()中获取。可以使用permission()一次性检查文件的权限和所有权。 注意在NTFS文件系统上默认情况下禁用所有权和权限检查以提高性能。要启用它请包含以下行
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;然后通过递增和递减qt_ntfs_permission_lookup 1次来打开和权限检查。
qtfs_permission_lookup; // turn on
qt_ntfs_permission--; // turn it off again常用函数及示例 QFileInfo::QFileInfo() 构造一个空的QFileInfo对象。 QFileInfo::QFileInfo(const QString file) 构造一个新的QFileInfo提供关于给定文件的信息。该文件还可以包括绝对或相对路径。 QFileInfo::QFileInfo(const QFile file) 构造一个新的QFileInfo提供关于文件file的信息。 文件具有相对路径QFileInfo也将具有相对路径。 QFileInfo::QFileInfo(const QDir dir, const QString file) 构造一个新的QFileInfo提有关目录dir中定文件的信息。 如果dir具有相对路径FileInfo也将具有相路径。 如果file是绝对路径则会忽略指定的目录。 QFileInfo::QFileInfo(const Q fileinfo) 构造一个新的QFileInfo是给定fileinfo的本。 QFileInfo::~QFileInfo() 销毁QFileInfo并释放其资源。 QDir QFileInfo::absoluteDir() const 返回文件的绝对路径作为QDir对象。 QString QFileInfo::absoluteFilePath() const 返回包括文件名在内的绝对路径。 绝对路径名称由完整路径和文件名组成在Unix上它始以根目录’/开头的路径。在Windows上它始终以D:/”开头其中D是一个驱器号但不包括未映射到驱动器的网络共享此时路径将以“//sharename/”开头。Q将驱动器号写。请注意QT不会这样做。下面的代码段展了这一点。 QFileInfo fi(c:/temp/foo); fi.absoluteFilePath() C:/temp/foo该函数与filePath()返回相同除非isRelative为true。与canonicalFilePath()不同符号链接或多余的“.”“…”元素不一定会被删除。 注意如果filePath()为空此函数的行为未定义。 QString QFileInfo::absolutePath() const 返回文件的绝对路径不包文件名。 在Unix上绝对路径将始终根目录’/头的路径。在Windows上它始终以“D:/”开头其中D是驱动器号但不包括未映射到驱动器号的网络共享此时路径以“//sharename/”开头。 与canonicalPath() 不同符号或多余的“.”“…”元素不一定会被删除。 警告如果filePath()为空则此函数的行为未定义。 QString QFileInfo::baseName() const 返回文件基本名称不包括路径。 基本名称文件中的所有字符组直到但不包括第一个“.”字符。 例如 QFileInfo fi(/tmp/archive.tar.gz);QString base fi.baseName(); // base archive文件的基本名称在所有平台上计算方式相同文件命名约定无关例如在Unix上“.bashrc”的基本名称为空后缀是“rc”。
QString QFileInfo::bundleName const 返回bundle的名称。 在macOS和iOS上如果路径是Bundle则返回Bundle的正确本地化名称。在所有平台上返回空的QString。 示例 QFileInfo fi(/Applications/Safari.app);QString bundle fi.bundleName(); // name Safaribool QFileInfo::caching() const 如果启用了缓存则返回true否则返回false。 QString QFileInfo::canonicalFilePath() const 返回包括文件名的规范路径即没有符号或冗余的.或…元素的绝对路径。 如果文件不存在canonicalFilePath()返回一个空字符串。 QString QFileInfo::canonicalPath() const 返回文件的规范路径不包括文件名即没有符号链接或冗余的.“或”…元素的绝对路径如果文件不存在canonicalPath()返回一个空字符串。 QString QFileInfo::completeBaseName() const 返回不带路径的文件的完整基本名称。 完整的基本名称由中最后一个’.字符之前的所有字符组成。 示例 QFileInfo fi(/tmp/archive.tar.gz);QString base fi.completeBaseName(); // base archive.tarQString QFileInfo::completeSuffix() const 返回文件的完整后缀扩展名。 完整扩展名由文件中第一个’.之后的所有字符组成。 示例 QFileInfo fi(/tmp/archive.tar.gz);QString ext fi.completeSuffix(); // ext tar.gzQDateTime QFileInfo::created() const 文件创建的日期和本地时间。 在大多数Unix系统上该函数返回最后一次状态更改的时间状态更改发生在文件创建时但也会在用户写入或设置inode信息时发生例如更改文件权限。 既不可用创建时间不可用“最一次状态更改”时间则返回与lastModified()同的时间。 QDir QFileInfo::dir() const 以Dir对象的形式返回对象的父目录路径。 注意返回的QDir始终对应于对象的父目录即使QFileInfo表示一个目录。 对于以下每个示例dir()将返回Dir~/examples/697。 QFileInfo fileInfo1(~/examples/191697.);QFileInfo fileInfo2(~/examples/191697/);QFileInfo fileInfo3(~/examples/191697/main.cpp);对于以下每个示例dir()将返回Dir.。 QFileInfo fileInfo4(.);Q fileInfo5(..);QFileInfo fileInfo6(main.cpp);bool QFileInfo::exists() const 如果文件存在则返回true否则返回false。 注意如果是一个指向不存在文件的符号链接则返回false [statis] bool QFileInfo::exists(const QString file) 如果文件存在则返回true否则返回false。 注意如果file是一个指不存在文件的符号链接返回false。 注意与使用QFileInfo(file).exists()进行文件系统访问相比使用此函数更快速。 QString QFileInfo::fileName() const 返回文件的不包括路径。 示例 QFileInfo fi(/tmp/archive.tar.gz);QString name fi.fileName(); // 名称为archive.tar.gz注意如果这个QFileInfo对象给出斜杠结尾的路径文件的名称被认是空的。 QString QFileInfo::filePath() const 返回包括路径文件名可以是绝对或相对的。 QString QFileInfo::group() const 返回文件所属的组。在Windows上以及文件没有组的上或者出现错误时返回空字符串。 在Unix系统上这个函数可能需要一些时间几毫秒级。 uint QFileInfo::groupId() const 返回文件所的组的ID。 对于没有组的系统和Windows系统该函数总是返回(uint)-2。 bool QFileInfo::isAbsolute() const 如果文件路径名是绝对的则返回true否则如果路径是相对的则返回false。 bool QFileInfo::isBundle() const 如果此对象指向macOS和iOS上的一个bundle或bundle的符号链接则返回true否则返回false。 bool QFileInfo::isDir() const 如果此对象指向一个目录或目录的符号链接则返回true否则返回false。 bool QFileInfo::isExecutable() const 如果文件可执行则返回true否则返回false。 bool QFileInfo::isFile() const 如果此对象指向一个文件或文件的符号链接则返回true。如果对象指向不是文件的东西比如一个目录则返回false。 bool QFileInfo::isHidden() const 如果这是一个“隐藏”文件则返回true否则返回false。 注意这个函数在Unix上对于特殊的条目“.”和“…”也返回尽管QDir::List对待它们不是这样。 bool QFileInfo::isNativePath() const 如果文件路径可以直接在本机API使用则返回true。如果文件由Qt内部的虚拟文件系统支持例如Qt资源系统则返回false。 注意根据平台和本机API的输入要求本机路径可能仍然需要转换分隔符和字符编码。 bool QFileInfo::isReadable() const 如果用户可以读取该文件则返回true否则返回false。 注意如果未启用NTFS权限检查在Windows上的结果仅反映文件是否存在。 bool QFileInfo::isRelative() const 如果文件路径名是相对的则返回true否则false例如在Unix上如果路径以“/”开头则是绝对路径。 bool QFileInfo::isRoot() const 如果该对象指向一个目录或目录的符号链接并且该目录是根目录则返回true否则返回false。 bool QFileInfo::isSymLink() const 如果此对象指向一个符号链接则返回true否则返回false。符号链接存在于Unix包括macOS和iOS和Windows上并且通常由ln -s 或者 mklink命令创建。打开符号链接实际上是打开链接目标。 此外在上对于快捷方式*.lnk文件也将返回true。打开它们将打开.lnk文件本身。 示 QFileInfo info(fileName);if (info.isSymLink())fileName info.symLinkTarget();注意如果号链接指向一个不存在文件则exists()返回false。 bool QFileInfo::isWritable() const 如果用户可以写入文件则返回true否则返回false。 注意如果未启用NTFS权限检查则在Windows上的结果将只反映文件是否标记为只读。 QDateTime QFileInfo::lastModified() const 返回文件上次修改的日期和本地时间。 QDateTime QFileInfo::lastRead() const 返回文件上次读取访问的日期和本地时间。 在不支持此信息的平台上返回与lastModified()相同的结果。 bool QFileInfo::makeAbsolute() 如果文件的路径不是绝对路径则将其转换为绝对路径。返回true表示路径已经转换否则返回false表示路径已经是绝对路径。 QString QFileInfo::owner() const 返回文件的所有者。在没有所有者的文件系统或发生错误时返回空字符串。 在Unix下此函数可能需要时间大约几毫秒。在Windows下除非启用了NTFS权限检查否则将返回空字符串。 uint QFileInfo::ownerId() const 返回文件的所有者ID。 在Windows和没有文件所有者的系统上此函数返回((uint) -2)。 QString QFileInfo::path() const 返回文件的路径。不包括文件名。 请注意如果此QFileInfo对象给出以斜杠结尾的路径则文件名被视为空此函数将返回整个路径。 bool QFileInfo::permission(QFile::Permissions permissions) const 测试文件权限。permissions参数可以是QFile :: Permissions类型的多个标志的OR结果以检查权限组合。 在没有文件权限的系统上此函数始终返回true。 注意如果未启用NTFS权限检查在Windows上的结果可能不准确。 示例 QFileInfo fi(/tmp/archive.tar.gz);if (fi.permission(QFile::WriteUser | QFile::ReadGroup))qWarning(I can change the file; my group can read the file);if (fi.permission(QFile::WriteGroup | QFile::WriteOther))qWarning(The group or others can change the file);QFile :: Permissions QFileInfo::permissions() const 返回文件的完整OR-ed组合QFile :: Permissions。 注意如果未启用NTFS权限检查在Windows上的结果可能不准确。 void QFileInfo::refresh() 刷新文件的信息即在下次获取缓存属性时从文件系统中读取信息。 void QFileInfo::setCaching(bool enable) 如果enable为true则启用文件信息的缓存。如果enable为false则禁用缓存。 当启用缓存时QFileInfo在第一次需要文件信息时从文件系统中读取文件信息但通常不会在以后读取。 缓存默认启用。 void QFileInfo::setFile(const QString file) 将QFileInfo所提供的有关文件的信息设置为file。 文件也可以包括绝对或相对文件路径。绝对路径以目录分隔符开始例如Unix下的/或驱动器规范Windows下。相对文件名以目录名或文件名开头并指定相对于当前目录的路径。 示例 QString absolute /local/bin;QString relative local/bin;QFileInfo absFile(absolute);QFileInfo relFile(relative);QDir::setCurrent(QDir::rootPath());// absFile and relFile now point to the same fileQDir::setCurrent(/tmp);// absFile now points to /local/bin,// while relFile points to /tmp/local/binvoid QFileInfo::setFile(const QFile file) 这是一个重载函数。 将QFileInfo所提供的有关文件的信息设置为file。 如果file包含相对路径QFileInfo也将具有相对路径。 void QFileInfo::setFile(const QDir dir, const QString file) 这是一个重载函数。 将QFileInfo所提供的有关文件的信息设置为目录dir中的文件。 如果file包含相对路径QFileInfo也将具有相对路径。 qint64 QFileInfo::size() const 以字节为单位返回文件大小。如果文件不存在或无法获取则返回0。 QString QFileInfo::suffix() const 返回文件的后缀扩展名。 后缀是指文件中最后一个’.之后的所有字符。 示例 QFileInfo fi(/tmp/archive.tar.gz);QString ext fi.suffix(); // ext gz文件的后缀在所有平台上都是相同计算的与文件命名约定无关例如在Unix上的.bashrc具有空的基本名称后缀为bashrc。 void QFileInfo::swap(QFileInfo other) 将该文件信息与其他文件信息交换。此函数非常快且不会失败。 QString QFileInfo::symLinkTarget() const 返回符号链接指向的文件或目录的绝对路径如果对象不是符号链接则返回空字符串。 此名称可能不表示现有文件它只是一个字符串。如果符号链接指向现有文件则QFileInfo::exists()将返回true。
完整示例及结果输出
#include QCoreApplication
#include QFileInfo
#include QDebug
#include QDateTime
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 指定要检查的文件或目录的路径QString path C:\\Users\\80943\\Desktop/test.txt.txt;// 创建一个QFileInfo对象并传入文件或目录的路径QFileInfo fileInfo(path);// 检查是否是目录if(fileInfo.isDir()) {qDebug() Its a directory.;} else {qDebug() Its not a directory.;}// 创建时间qDebug() created: fileInfo.created();// 获取基础名称qDebug() Base name: fileInfo.baseName();// 完整基础名称qDebug() completeBaseName: fileInfo.completeBaseName();// 获取文件路径qDebug() File path: fileInfo.filePath();// 获取绝对文件路径qDebug() Absolute file path: fileInfo.absolutePath();// 是否是相对路径qDebug() Relative file path: fileInfo.isRelative();// 获取后缀qDebug() Suffix: fileInfo.suffix();// 完整后缀qDebug() completeSuffix: fileInfo.completeSuffix();// 文本名称qDebug() fileName: fileInfo.fileName();// bundleNameqDebug() bundleName: fileInfo.bundleName();// 检查文件或目录是否存在if(fileInfo.exists()) {qDebug() It exists.;} else {qDebug() It doesnt exist.;}// 检查是否使用了缓存if(fileInfo.isReadable()) {qDebug() Its readable.;} else {qDebug() Its not readable.;}return a.exec();
}输出 应用场景
文件选择和打开可以使用QFileInfo来获取选中文件的路径、名称和属性进而打开和操作该文件。文件比较QFileInfo可以获取文件的许多属性包括大小、修改时间等可以用于比较两个文件是否相同或有何异同。文件搜索QFileInfo可以配合QDir一起使用用于在特定目录或其子目录中查找文件。可以根据文件名、大小、修改时间等属性进行搜索。权限管理QFileInfo可以用于检查用户对文件的访问权限例如判断用户是否有权读取、写入或执行该文件。文件展示可以将QFileInfo获取的文件信息展示给用户例如在文件浏览器或资源管理器中显示文件的详细信息。
结论
愿你眼里的星星温柔泛滥。