StupidBeauty
Read times:1273Posted at:Fri Nov 1 23:14:45 2013 - no title specified

Qt5.6文档翻译:QFileInfo类QFileInfo Class

QFileInfo类提供与系统无关的文件信息

QFileInfo提供一个文件的以下信息 :名字、在文件系统中的位置(路径) 、它的访问权限、是一个目录还是符号链接等等。还有文件的大小和最后修改/读取时间。 QFileInfo还可以用来获取一个Qt 资源 的信息

一个QFileInfo可以指向一个有相对路径或者绝对路径的文件 。绝对文件路径以目录分隔符"/"开始 。相对文件名以一个目录名或者一个文件名开头 ,指定一个相对于当前工作目录的路径。一个绝对路径的示例是这个字符串"/tmp/quartz" 。一个相对路径可能看起来像是这样的"src/fatlib" 。你可以使用函数 isRelative () 来检查一个 QFileInfo 是在使用一个相对路径还是一个绝对路径。你可以调用函数 makeAbsolute () 来将一个使用相对路径的QFileInfo 的路径转换成一个绝对路径。

QFileInfo 所处理的文件是在构造函数中或者是稍后使用 setFile () 设置的 。使用 exists () 来看文件是否存在,使用 size () 来获取它的大小。

文件的类 是使用 isFile () isDir () isSymLink () 来获取的。 symLinkTarget () 函数提供咯这个符号链接所指向的文件的名字。

在Unix上 ,符号链接的 size () 与它所指向的文件相同 ,因为Unix 透明地处理符号链接;类似地 ,使用 QFile 来打开一个符号链接与打开链接的目标是等价的 。例如:

#ifdef Q_OS_UNIX

QFileInfo info1("/home/bob/bin/untabify");

info1.isSymLink();           // 返回 真(true)

info1.absoluteFilePath();   // 返回"/home/bob/bin/untabify"

info1.size();               // 返回56201

info1.symLinkTarget();       // 返回"/opt/pretty++/bin/untabify"

QFileInfo info2(info1.symLinkTarget());

info2.isSymLink();           // 返回 假(false)

info2.absoluteFilePath();   // 返回"/opt/pretty++/bin/untabify"

info2.size();               // 返回56201

#endif

这个文件的名字中的元素可使用 path () fileName () 来提取。 fileName () 的各个部分可使用 baseName () suffix () 或者 completeSuffix () 来提取。Qt 类所创建的指向目录的QFileInfo 对象没有末尾的文件分隔符 。如果你想要 在你自己的文件信息对象中使用末尾的分隔符的话,只需要在向构造函数或者 setFile () 传递文件名时 在末尾添加一个就行咯。

这个文件的日期信息是由 created () lastModified () lastRead () 返回的。这个文件的访问权限信息是用 isReadable () isWritable () isExecutable () 获取的。文件的所有者信息是由 owner () ownerId () group () groupId () 来查询的。你可以使用 permission () 函数来在单条语句中检查一个文件的权限和所有者信息

性能问题

QFileInfo 的某些函数会查询文件系统,但是因为性能上 的某些原因,有些函数只是自己对文件名进行操作。例如 :为了返回一个相对文件名的绝对路径, absolutePath () 需要查询文件系统。然而, path () 函数可以直接在文件名上进行计算 ,所以要快一些。

注意: 为了提升性能,QFileInfo对文件的信息进行缓存。因为那些文件可能会被其它用户或者程序修改,甚至可能被这个程序的其它部分修改,所以有一个函数来刷新这个文件的信息: refresh () 。如果你想关掉一个QFileInfo 的缓存功能,以强制让它在你每次请求信息时访问文件系统,那么就调用setCaching(false)。

QDir QFile

成员函数文档

QFileInfo::QFileInfo()

构造 一个空白的 QFileInfo 对象。

注意 ,空白的 QFileInfo 对象不包含任何文件引用。

参考 setFile ()

QFileInfo:: QFileInfo (const  QString  & file )

构造 一个新的 QFileInfo 对象,它 会提供指定文件的信息。文件 file 可指定为绝对路径或相对路径。

参考 setFile () isRelative () QDir::setCurrent () QDir::isRelativePath ()

QFileInfo:: QFileInfo (const  QFile  & file )

构造 一个新的 QFileInfo 对象,它会提供指定文件 file 的信息。

如果 file 带有相对路径,那么,对应的 QFileInfo 对象也会带有相对路径。

参考 isRelative ()

QFileInfo:: QFileInfo (const  QDir  & dir , const  QString  & file )

构造 一个新的 QFileInfo 对象,它会提供指定目录 dir 中指定文件 file 的信息。

如果 dir 带有相对路径,那么,对应的 QFileInfo 对象也会带有相对路径。

如果file带有绝对路径,那么,由 dir 指定的目录参数会被忽略。

参考 isRelative ()

QFileInfo:: QFileInfo (const  QFileInfo  & fileinfo )

构造 一个新的 QFileInfo 对象,它是指定 fileinfo 的一个复制品。

QFileInfo::~QFileInfo()

销毁 这个 QFileInfo 对象,并且释放它的资源。

QDir  QFileInfo:: absoluteDir () const

将该文件的绝对路径返回为一个 QDir 对象。

参考 dir () filePath () fileName () isRelative ()

QString  QFileInfo:: absoluteFilePath () const

返回一个绝对路径,其中包含文件名。

绝对路径 名,由完整路径和文件名组成。 Unix 中,这样的路径名一定会以根目录'/'开头。

除非 isRelative () 为真(true),否则,这个函数返回的内容与 filePath ()相同。 canonicalFilePath ()不同的是,符 链接 和多余的"."和".."元素都不会被去掉。

警告 如果 filePath () 是空白的,那么,此函数的行为是未定义的。

参考 filePath () canonicalFilePath () isRelative ()

QString  QFileInfo:: absolutePath () const

将该文件所在的路径返回为绝对路径。这并不会包含文件名。

Unix中,绝对路径名一定会以根目录'/'开头。

canonicalFilePath ()不同的是,符 链接 和多余的"."和".."元素都不会被去掉。

警告 如果 filePath () 是空白的,那么,此函数的行为是未定义的。

参考 absoluteFilePath () path () canonicalPath () fileName () isRelative ()

QString  QFileInfo:: baseName () const

返回该文件的基本文件名,并且不带路径。

基本文件名,表示的是,文件名中从开头直到 第一个 '.' 字符之前的所有字符。

示例:

QFileInfo fi("/tmp/archive.tar.gz");

QString base = fi.baseName();  // base = "archive"

文件的基本文件名,在所有平台上的计算方法都是等同的,并不会受命名惯例的影响(例如,在Unix 中,".bashrc"会具有一个空白的基本文件名,而其后缀名是"bashrc")

参考 fileName () suffix () completeSuffix () completeBaseName ()

bool  QFileInfo:: caching () const

如果启用 了缓存,则返回真( true );否则返回假( false )。

参考 setCaching () refresh ()

QString  QFileInfo:: canonicalFilePath () const

返回一个规范路径,并且包含文件名。也就是说,返回的是一个绝对路径,并且其中不会包含符号链接、多余的"."和".."元素。

如果该文件不存在,那么,canonicalFilePath()会返回一个空白字符串。

参考 filePath () absoluteFilePath () dir ()

QString  QFileInfo:: canonicalPath () const

返回一个规范路径,其中不包含文件名。也就是说,返回的是一个绝对路径,并且其中不会包含符号链接、多余的"."和".."元素。

如果该文件不存在,那么,canonicalPath()会返回一个空白字符串。

参考 path () absolutePath ()

QString  QFileInfo:: completeBaseName () const

返回该文件的完整基本文件名,不包含路径。

完整基本文件名,表示的是,文件名中从开头直到 最后一个 '.'字符之前的那些字符。

示例:

QFileInfo fi("/tmp/archive.tar.gz");

QString base = fi.completeBaseName();  // base = "archive.tar"

参考 fileName () suffix () completeSuffix () baseName ()

QString  QFileInfo:: completeSuffix () const

返回该文件的完整后缀名。

完整后缀名,表示的是,文件名中第一个'.'之后的全部字符。

示例:

QFileInfo fi("/tmp/archive.tar.gz");

QString ext = fi.completeSuffix();  // ext = "tar.gz"

参考 fileName () suffix () baseName () completeBaseName ()

QDateTime  QFileInfo:: created () const

返回该文件被创建的日期和时间。

在大部分Unix 系统中,这个函数会返回最后一次发生状态变更的时间。状态变更,会在文件被创建的时候发生,但是,每当用户写入或者设置inode 信息(例如,改变文件的权限)时也会发生。

如果创建时间 和“最后一次状态变更”时间都无法获取,那么,其返回的值与 lastModified ()一致。

参考 lastModified () lastRead ()

QDir  QFileInfo:: dir () const

将该对象的亲代目录的路径返回为一个 QDir 对象。

注意 所返回的 QDir 一定是对应着该对象的亲代目录,即使该 QFileInfo 本身也代表着一个目录也是如此。

对于 以下每个对象,dir()所返回的 QDir 都是对应着 "~/examples/191697"

QFileInfo fileInfo1("~/examples/191697/.");

QFileInfo fileInfo2("~/examples/191697/..");

QFileInfo fileInfo3("~/examples/191697/main.cpp");

对于 以下每个对象,dir()返回的 QDir 都是对应着 "."

QFileInfo fileInfo4(".");

QFileInfo fileInfo5("..");

QFileInfo fileInfo6("main.cpp");

参考 absolutePath () filePath () fileName () isRelative () absoluteDir ()

bool QFileInfo::exists() const

如果 该文件存在,则返回真( true );否则返回假( false )。

注意 如果该文件是一个符号链接,并且指向一个不存在的文件,那么,返回假。

[static] bool  QFileInfo:: exists (const  QString  & file )

如果文件 file 存在 ,则返回真( true );否则,返回假( false )。

注意 如果file 是一个符号链接,并且指向一个不存在的文件,那么,返回假。

注意 从文件系统访问的角度来说,使用这个函数,比使用 QFileInfo(file).exists() 要快。

这个函数是从Qt 5.2 开始引入的。

QString  QFileInfo:: fileName () const

返回该文件的文件名,不包含路径。

示例:

QFileInfo fi("/tmp/archive.tar.gz");

QString name = fi.fileName();                // name = "archive.tar.gz"

注意 ,如果向这个 QFileInfo 对象传递的路径是以/结尾的,那么,文件名会被认为是空白的。

参考 isRelative () filePath () baseName () suffix ()

QString  QFileInfo:: filePath () const

返回文件名,包含路径(路径可能是绝对的也可能是相对的)

参考 absoluteFilePath () canonicalFilePath () isRelative ()

QString  QFileInfo:: group () const

返回该文件所属的组。在某些系统中,文件不具有组属性,或者,在出错的情况下,都会返回一个空白字符串。

在Unix 系统中,这个函数可能会狠耗时(毫秒的级别)。

参考 groupId () owner () ownerId ()

uint  QFileInfo:: groupId () const

返回此文件所属的组的编号。

在某些系统中,文件并不具有组这个属性,那种情况下,此函数永远返回(uint)-2

参考 group () owner () ownerId ()

bool QFileInfo::isAbsolute() const

如果文件 的路径是绝对的,则返回真( true ),否则路径是相对的则返回假(false)。

参考 isRelative ()

bool QFileInfo::isDir() const

如果 这个对象指向一个目录,或者指向某个目录的一个符号链接,则返回真( true );否则返回假( false )。

参考 isFile () isSymLink ()

bool QFileInfo::isExecutable() const

如果 该文件可执行,则返回真( true );否则返回假( false )。

参考 isReadable () isWritable () permission ()

bool QFileInfo::isFile() const

如果 该对象指向一个文件,或者指向某个文件的一个符号链接,则返回真( true )。如果 该对象指向一个不是文件的东西,则返回假( false ),例如指向一个目录。

参考 isDir () isSymLink ()

bool QFileInfo::isHidden() const

如果 这是一个“隐藏”文件,则返回真( true ),否则返回假( false )。

注意 :在 Unix 中,这个函数会针对特殊条目 "." ".." 返回真( true ),即便 QDir::entryList 将它们当成可见文件也是如此。

bool QFileInfo::isNativePath() const

如果 该文件路径可被直接用于原生接口,则返回真( true )。否则 ,如果该文件是由 Qt 中的虚拟文件系统支持的,例如 Qt资源系统 ,则返回假( false )。

注意 对于原生路径,可能仍然需要进行路径分隔符和字符编码的转换,这取决于平台以及该原生接口的输入要求。

此函数是从Qt 5.0 开始引入的。

参考 QDir::toNativeSeparators () QFile::encodeName () filePath () absoluteFilePath () canonicalFilePath ()

bool QFileInfo::isReadable() const

如果 该用户可读取该文件,则返回真( true );否则返回假( false )。

参考 isWritable () isExecutable () permission ()

bool QFileInfo::isRelative() const

如果 文件 的路径名是相对的,则返回真( true ),否则如果路径是绝对的则返回假(false)。 (例如 ,在Unix 中,一个路径如果是以"/"开头的则是绝对路径 )

参考 isAbsolute ()

bool QFileInfo::isRoot() const

如果 该对象指向一个目录或者是指向目录的一个符号链接,并且该目录是根目录,则返回真( true );否则返回 假( false )。

bool QFileInfo::isSymLink() const

如果 这个对象指向一个符号链接,则返回真( true );否则返回 假( false )。

Unix 中,打开一个符号链接,就等价于打开 链接 的目标

示例:

QFileInfo info(fileName);

if (info.isSymLink())

fileName = info.symLinkTarget();

注意 如果 该符号链接指向一个不存在的文件,那么, exists ()返回假(false)。

参考 isFile () isDir () symLinkTarget ()

bool QFileInfo::isWritable() const

如果 该用户可对该文件进行写入操作,则返回真( true );否则返回假( false )。

参考 isReadable () isExecutable () permission ()

QDateTime  QFileInfo:: lastModified () const

返回该文件最后一次被修改的日期和时间。

参考 created () lastRead ()

QDateTime  QFileInfo:: lastRead () const

返回该文件最后一次被读取(访问)的日期和时间。

在那些不提供此信息的平台上, 其返回值与 lastModified ()相同。

参考 created () lastModified ()

bool QFileInfo::makeAbsolute()

如果 该文件的路径还不是绝对路径,则转换成绝对路径。返回 真( true )则表明路径被转换了;返回假( false )则表明路径已经是绝对的了。

See also  filePath () and  isRelative ().

QString  QFileInfo:: owner () const

返回该文件的所有者。在那些不记录文件所有者的系统中,或者,出现错误时,会返回一个空白字符串。

在Unix 中,这个函数可能会狠费时间( 以毫秒为单位 )。

参考 ownerId () group () groupId ()

uint  QFileInfo:: ownerId () const

返回该文件的所有者的编号。

在那些不记录文件的所有者的系统中,这个函数会返回((uint) -2)

参考 owner () group () groupId ()

QString  QFileInfo:: path () const

返回该文件的路径。不包括文件名。

注意 ,如果 这个 QFileInfo 对象被赋予一个以/结尾的路径,则,文件 名就被认为是空白的,于是这个函数就会返回整个路径。

参考 filePath () absolutePath () canonicalPath () dir () fileName () isRelative ()

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

检查文件 的权限。其中 permissions 参数, 可将多个 QFile::Permissions 类型的标志位以逻辑或(OR)合并到一起而得到,以检查多个权限的组合。

在那些不支持权限的系统中,这个函数一定会返回真( true )。

示例:

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");

参考 isReadable () isWritable () isExecutable ()

QFile::Permissions  QFileInfo:: permissions () const

返回 该文件的权限标志位的组合,即, 它所具有的所有 QFile::Permissions 标志位经过逻辑或(OR)合并之后的结果。

void  QFileInfo:: refresh ()

刷新该文件的信息,也就是说,当下次获取某个被缓存的属性时,从文件系统中读取信息。

void  QFileInfo:: setCaching ( bool enable )

如果enable 为真(true),则启用针对文件信息的缓存。如果 enable 为假(false),则禁用缓存。

在启用缓存的情况下, QFileInfo 会在第一次需要读取信息的时候从文件系统中读取文件的信息,但是之后 一般就不会从文件系统读取了。

缓存默认是启用的。

参考 refresh () caching ()

void  QFileInfo:: setFile (const  QString  & file )

将这个 QFileInfo 所关联的文件设置为 file

file 可包含一个绝对或相对文件路径。绝对路径,以目录分隔符开头(例如,Unix 中是"/")。相对文件名,以目录名或文件名开头,它所表达的是相对于当前目录的路径。

示例

QString absolute = "/local/bin";

QString relative = "local/bin";

QFileInfo absFile(absolute);

QFileInfo relFile(relative);

QDir ::setCurrent( QDir ::rootPath());

// 现在absFile relFile指向 同一个文件

QDir ::setCurrent("/tmp");

// 现在absFile指向"/local/bin"

// relFile指向"/tmp/local/bin"

参考 isFile () isRelative () QDir::setCurrent () QDir::isRelativePath ()

void  QFileInfo:: setFile (const  QFile  & file )

这是一个重载函数。

将这个 QFileInfo 所关联的文件设置为 file

如果 file 包含 一个相对路径,则,这个 QFileInfo 也会包含一个相对路径。

参考 isRelative ()

void  QFileInfo:: setFile (const  QDir  & dir , const  QString  & file )

这是一个重载函数。

将这个 QFileInfo 所关联的文件设置为目录 dir 中的 file

如果 file 包含 一个相对路径,则,这个 QFileInfo 也会包含一个相对路径。

参考 isRelative ()

qint64  QFileInfo:: size () const

返回该文件的尺寸,以字节为单位。如果该文件不存在或者无法获取,则返回0。

参考 exists ()

QString  QFileInfo:: suffix () const

返回该文件的后缀。

后缀名,指的是,文件名中,最后一个'.'之后的全部字符。

示例:

QFileInfo fi("/tmp/archive.tar.gz");

QString ext = fi.suffix();  // ext = "gz"

文件的后缀名,在所有平台上都是以相同的方法计算的,与命名惯例无关(例如,在Unix 中,".bashrc"的基本文件名为空白,后缀名为"bashrc")

参考 fileName () completeSuffix () baseName () completeBaseName ()

void  QFileInfo:: swap ( QFileInfo  & other )

将这个文件的信息与 other 互换。这个函数运行狠快,并且不会失败。

此函数是从Qt 5.0 开始引入的。

QString  QFileInfo:: symLinkTarget () const

返回符号链接所指向的文件或目录的绝对路径,或者,如果它不是符号链接,则返回一个空字符串。

这个结果,可能并不是一个真正存在的文件;它本质上仅仅是一个字符串。如果 该符号链接指向一个真实存在的文件,则 QFileInfo::exists ()会返回真( true )。

此函数是从Qt 4.2 开始引入的。

参考 exists () isSymLink () isDir () isFile ()

bool  QFileInfo:: operator!= (const  QFileInfo  & fileinfo ) const

如果 这个 QFileInfo 对象所引用的文件与 fileinfo 所引用的文件不是同一个文件,则返回真( true );否则返回假( false )。

参考 operator== ()

QFileInfo  &QFileInfo:: operator= (const  QFileInfo  & fileinfo )

对指定的 fileinfo 进行一次复制,并且将它赋值给本 QFileInfo 对象。

QFileInfo  &QFileInfo:: operator= ( QFileInfo  && other )

other 移动赋值(Move-assign)给本 QFileInfo 实例。

此函数是从Qt 5.2 开始引入的。

bool  QFileInfo:: operator== (const  QFileInfo  & fileinfo ) const

如果 QFileInfo 对象所引用的文件的位置与 fileinfo 所引用的文件的位置相同,则返回真( true );否则返回假( false )。

注意 对两个空白的 QFileInfo 对象进行比较,或者对两个不包含文件引用(文件路径 不存在,或者路径为空 )的对象进行比较,其结果是未定义的。

警告: 这个函数并不会判断两个不同的符号链接是否指向同一个文件。

参考 operator!= ()

相关的非成员对象

typedef QFileInfoList

QList < QFileInfo >的同义词。

十月的天空

未知美人

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4